ros学习日记(2)——集成开发环境
- 1.下载
- 2.vscode 安装与卸载
- 2.1 安装
- 2.2 卸载
- 3.vscode 集成 ROS 插件
- 4.vscode 使用_基本配置
- 4.1 创建 ROS 工作空间
- 4.2 启动 vscode
- 4.3 vsode中编译ros
- 4.4 创建ros功能包
- 4.5 c++实现
- 4.5.1 在功能包的src下新建cpp文件
- 4.5.2 修改cmake文件
- 4.5.3 实验效果
- 4.6 python实现
- 5. launch文件
- 5.1 需求
- 2.实现
- 4.运行结果
1.下载
vscode 下载:https://code.visualstudio.com/docs?start=true
历史版本下载链接: https://code.visualstudio.com/updates
2.vscode 安装与卸载
2.1 安装
方式1:双击安装即可(或右击选择安装)
方式2:
sudodpkg-ixxxx.deb2.2 卸载
sudodpkg--purgecode3.vscode 集成 ROS 插件
使用 VScode 开发 ROS 程序,需要先安装一些插件,常用插件如下:
4.vscode 使用_基本配置
4.1 创建 ROS 工作空间
mkdir-pxxx_ws/srccdxxx_ws catkin_make4.2 启动 vscode
进入之前创建的 ROS 工作空间目录,然后启动 VSCode。
cdxxx_ws code.4.3 vsode中编译ros
快捷键ctrl+shift+B调用编辑,选择:catkin_make:build
修改.vscode/tasks.json 文件,这样按快捷键ctrl+shift+B就是自动编译
{// 有关 tasks.json 格式的文档,请参见// https://go.microsoft.com/fwlink/?LinkId=733558"version":"2.0.0","tasks":[{"label":"catkin_make:debug",//代表提示的描述性信息"type":"shell",//可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行"command":"catkin_make",//这个是我们需要运行的命令"args":[],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”"group":{"kind":"build","isDefault":true},"presentation":{"reveal":"always"//可选always或者silence,代表是否输出信息},"problemMatcher":"$msCompile"}]}4.4 创建ros功能包
选定src,右击,选择create catkin package
在第一个上方弹窗中设置包名
在第二个上方弹窗中填写依赖,一般使用的依赖有rospy roscpp std_msgs
这一步为防止依赖名填错,可以按快捷键编译一下,如果有错可以在package.xml最下面修改
4.5 c++实现
4.5.1 在功能包的src下新建cpp文件
/* 控制台输出 Hello, Visual Studio Code! */#include"ros/ros.h"intmain(intargc,char*argv[]){ros::init(argc,argv,"hello_vscode");ROS_INFO("Hello, Visual Studio Code!");return0;}- 在写代码过程中,如果
#include "ros/ros.h"有报错不必在意,编译后报错会消失 - 如果没有代码提示,可以修改.vscode/c_cpp_properties.json,设置 “cppStandard”: “c++17”
4.5.2 修改cmake文件
注意!!!修改的是src目录下的cmake文件
画框两部分解除注释,ctrl+/
修改节点名,和cpp文件名
4.5.3 实验效果
完成后编译
↓
在终端打开新的终端
启动ros:
roscore
新建终端
cd~/demo02_ws/source./devel/setup.bash rosrun hello_vscode hello_vscode_c
输入命令后输出:hello,visual studio code!
实验成功
4.6 python实现
- 在功能包目录下添加scripts文件夹,添加python文件
#! /usr/bin/env python3#导包importrospy#入口if__name__=="__main__":#初始化ROS节点rospy.init_node("hello_vscode_p")#打印日志rospy.loginfo("Hello VSCode Python!")- 添加可执行权限
chmod+x *.py ll
3. 修改cmake文件
修改第162-165行
首先取消注释,然后将python文件名换为我们添加的python文件名
作用是:可以正确安装python脚本;可以定位到合适的python解释器执行python脚本
4. 编译
5. 启动ros
roscore
6. 执行
cd~/demo02_ws/source./devel/setup.bash rosrun hello_vscode hello_vscode_p.py5. launch文件
5.1 需求
一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动,显然效率低下,如何优化?
官方给出的优化策略是使用 launch 文件,可以一次性启动多个 ROS 节点。
2.实现
选定功能包右击 —> 添加 launch 文件夹
选定 launch 文件夹右击 —> 添加 launch 文件
编辑 launch 文件内容
<launch><nodepkg="helloworld"type="demo_hello"name="hello"output="screen"/><nodepkg="turtlesim"type="turtlesim_node"name="t1"/><nodepkg="turtlesim"type="turtle_teleop_key"name="key1"/></launch>node —> 包含的某个节点
pkg -----> 功能包
type ----> 被运行的节点文件
name --> 为节点命名
output-> 设置日志的输出目标
## 3.运行 launch 文件roslaunch 包名 launch文件名
4.运行结果
一次性启动了多个节点
学习的为赵虚左老师的教程 1.老师的文档 2.老师的视频
在笔记上大量参考了老师的文档