下载ros1
使用的是ubuntu20.04,因为 绝影lite3 机器狗系统便是这个,选择相同的版本
- 下载方式 —> 使用鱼香ros下载工具,别折磨自己
wget http://fishros.com/install -O fishros && . fishros
选择 Noetic
工作空间
目录名称
符合一定结构的代码空间
- catkin_ws
- src
- xxxx
ros1下的一些文件目录
- scripts
- 存放脚本文件和python程序
ros1编译
进入到工作空间的入口
运行在工作目录,编译
catkin_make
使用source指令载入工作空间的环境设置
source ~/catkin_ws/devel/setup.bash
- 运行编译好的ros程序
roslaunch wpr_simulation wpb_simple.launch
- 运行控制软件
rosrun rqt_robot_steering rqt_robot_steering
- 将工作环境加入到终端脚本
./bashrc
中
vim ~/.bashrc
添加
source ~/catkin_ws/devel/setup.bash
编译
相关工具的下载
- vscode
- Terminator
ROS INDEX
去偷轮子!
ros的官方网站
ros index显示了有哪些的包信息,apt中能下载的,和开源代码
https://index.ros.org/
https://index.ros.org/repos/page/1/time/
有闪电的表示可以直接apt下载到可执行文件
vscode开发工具的配置
插件需要:
- ros
- cmake tools
- Remote-SSH
- 实现在其他平台开写代码,在Linux运行
- IntelliCode
- 代码提示工具
vscode的快捷键
编译
ctrl + shift + b
,选择编译工具模式
设置
- ctrl + shift + p 进入设置模式
关闭cmake的每次读取build
点击取消
远程连接
使用 Remote-SSH
来进行远程调试
代码提示
c++会出现vscode代码不提示的问题
解决方法 简单粗暴的方式
- 方法1
参考博客
https://blog.csdn.net/2301_79744525/article/details/140700029
进入设置,输入
cmake.options
添加或者修改
或者将.vscode
中的 settings.json
"C_Cpp.intelliSenseEngine": "Tag Parser",
- 方法2
将c_cpp_properties.json
中
"cStandard": "gnu11",
"cppStandard": "c++14"
改为相同的数值 部分代码会红
比如 ROS_INFO()
"cStandard": "gnu11",
"cppStandard": "c++11"
推荐使用方法1
Terminator相关的快捷键
打开终端
- ctrl + alt + t
创建新窗口
- ctrl + shift + o 分上下
- ctrl + shift + e 分左右
切换终端
- alt + 方向键
关闭窗口
- ctrl + alt + w
ROS的目录结构
目录
share目录
其中存放了ros共享的一些包pkg
来源:
- apt install ros-<ros版本>-desktop-full 完全下载下来的基础包
- apt install ros-<ros版本>xxx 独立扩展包
他们和catkin_ws下的pkg有什么区别?
这些包都是可执行文件,而cakin_ws下的都是源码文件
source /opt/ros/noetic/setup.bash —-> 将ros系统相关的加到path中
source ~/catkin_ws/devel/setup.bash —>
ROS1常见指令
1. 环境和初始化
初始化ROS环境
source /opt/ros/noetic/setup.bash
初始化工作空间
(通常用于catkin工作空间):
source devel/setup.bash
2. 启动和关闭
启动roscore
(ROS核心服务,必须先启动):
roscore
启动ROS节点
(在节点包目录下):
rosrun <package_name> <node_name>
启动launch文件
(用于同时启动多个节点):
roslaunch <package_name> <file_name.launch>
3. 包和节点
查看ROS包列表
rospack list
找到包的路径
rospack find <package_name>
列出包内的节点
rosnode list
4. 话题(Topics)
查看当前所有话题
rostopic list
查看特定话题的数据类型
rostopic type <topic_name>
发布话题消息
(常用于测试):
rostopic pub <topic_name> <msg_type> <msg_data>
例如:
rostopic pub /chatter std_msgs/String "data: 'hello world'"
查看话题的实时消息
rostopic echo <topic_name>
5. 服务(Services)
查看所有可用服务
rosservice list
查看服务类型
rosservice type <service_name>
调用服务
rosservice call <service_name> <args>
例如:
rosservice call /spawn "{x: 2, y: 3, theta: 0, name: 'turtle2'}"
6. 参数服务器(Parameter Server)
查看所有参数
rosparam list
获取参数值
rosparam get <param_name>
设置参数值
rosparam set <param_name> <value>
删除参数
rosparam delete <param_name>
7. 日志和调试
显示日志输出
rosconsole
记录rosbag文件
(记录消息数据,便于之后分析):
rosbag record -O <filename> /topic1 /topic2 ...
播放rosbag文件
rosbag play <filename>