Índice
preparação do espaço de trabalho
introduzir
O desenvolvimento Ros é um trabalho essencial no desenvolvimento de robôs, e a escolha da linguagem pode ser c++ ou python. Em termos de ferramentas, elas não podem ser tão coloridas quanto o sistema windows, qtcreate, visual studio, clion. Como a maior parte do ambiente ros está no sistema Ubuntu, ele está limitado ao uso do IDE apenas no ambiente Linux, e aqui escolhemos vscode.
premissa
Este artigo não foi criado do zero, desde a instalação do ambiente ros até a construção da ferramenta vscode, depois a escrita do código, a compilação e a depuração. A premissa aqui é que nosso sistema instalou o ros-melodic-desktop-full e pode executar comandos relacionados ao ros .
instalação do vscode
Primeiro instale o vscode, é recomendável usar o endereço oficial para fazer o download e depois mudar manualmente para o acelerador doméstico.
Após clicar em download, pois o download do endereço oficial é muito lento, localize o item de download diretamente no download do navegador, copie o link de download, cole-o na barra de endereço do navegador e modifique-o para um endereço doméstico.
por exemplo:
O arquivo de instalação deb baixado pode ser instalado diretamente através de dpkg -i xxx.deb.
instalação do plugin vscode
Precisamos instalar dois plug-ins de ros e catkin-tools na extensão de plug-in Extensões.
preparação do espaço de trabalho
mkdir -p roshelloworld/src
cd roshelloworld/src
catkin_init_workspace
cd ..
catkin_make
Observe que se não houver nenhum prompt de comando catkin_init_workspace aqui, é um problema ambiental. Na verdade, ele foi instalado quando o ros foi instalado. Precisamos configurá-lo e executá-lo:
echo "source /opt/ros/melodic/setup.bash" >> /etc/profile
abrir vscode
code .
No espaço de trabalho atualmente compilado, abra o vscode por meio da linha de comando
Criar pacote catkin
Clique com o botão direito em src-> Criar pacote Catkin
Na operação de acompanhamento, você precisa inserir o nome do pacote e o nome da dependência. O nome do pacote aqui é my_test_pkg e as dependências são roscpp, rospy e std_msgs.
A estrutura do pacote então fica da seguinte forma:
O roshelloworld/src original tem mais my_test_pkg e my_test_pkg também tem src, arquivos CMakeLists.txt. O CMakeLists.txt aqui é diferente do CMakeLists.txt em roshelloworld.Modificaremos o arquivo CMakeLists.txt no pacote my_test_pkg posteriormente.
escrever código cpp
Criamos um novo my_test_pkg_node.cpp no diretório my_test_pkg/src e adicionamos o código da seguinte forma:
#include <iostream>
#include <string>
#include <sstream>
#include "ros/ros.h"
#include "std_msgs/String.h"
using namespace std;
int main(int argc, char** argv)
{
ros::init(argc, argv, "talker");
ros::NodeHandle n;
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
ros::Rate loop_rate(10);
int count = 0;
while(ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << "hello,world" << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
count++;
}
return 0;
}
Este código publica o tópico /chatter e envia hello, world + count a cada 10 ms. Se você testar mais tarde, poderá se inscrever no tópico /chatter para ver as mensagens recebidas.
Modifique CMakeLists.txt:
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node src/my_test_pkg_node.cpp)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
)
Estas configurações estão disponíveis em CMakeLists.txt, basta abrir os comentários correspondentes.
compilar
Execute catkin_make na linha de comando
correr
Inicie o serviço ros
roscore
ouvir tópico
rostopic echo /chatter
iniciar teste ros
rosrun my_test_pkg my_test_pkg_node
Este é o fim da introdução do ambiente de desenvolvimento vscode + ros. Não depurei o código e copiei o código de outras pessoas diretamente.