ROS1 Noetic编程环境搭建和练习
下载wpr_simulation源码,安装和编译
git clone https://github.com/6-robot/wpr_simulation.git
#git clone https://ghpwpr_simulation/scriptsroxy.com/https://github.com/6-robot/wpr_simulation.git
#wpr_simulation/scripts目录下
./install_for_noetic.sh
cd ~/catkin_ws
catkin_make //编译
gedit ~/.bashrc
source ~/catkin_ws/devel/setup.bash //配置环境变量并保存
roslaunch wpr_simulation wpb_simple.launch
安装git
sudo apt install git
#cp /media/ros1/WISNTON/ssh/id_rsa* . //复制ssh密钥
安装terminator
sudo apt install terminator
启动 Ctrl+Alt+T
Ctrl+Shift+E 横向分屏
Ctrl+Shift+O 纵向分屏
Ctrl+Shift+W 取消分屏
Alt+方向键 移动焦点
vscode
下载 Documentation for Visual Studio Code
sudo dpkg -i code_1.95.0-1730153583_amd64.deb //安装vscode
- vscode的左下角搜索chinese安装简体中文插件,查看中点击终端,方便使用
- 安装ros插件和github copilot插件
- 安装Bracket Pair Colorizer 代码大括号颜色不同
- vscode直接编译要配置环境,使用rosversion -d查看ros版本配置编译设置
4.包、节点
rosrun turtlesim turtlesim_node
编程实践
- 创建包和节点小结
- catkin_create_pkg test_pkg rospy roscpp std_msgs
- 在软件包src文件夹下创建一个节点cpp源码
- 在节点的源码文件中include ros头文件
- 构建main函数,并在函数开头执行ros::init()
- 构建while循环,循环条件为ros::ok()
- 在CMakeList.txt中设置节点源码的编译规则
- 编译运行
- 消息发布小结
- 确定话题名称和消息类型
- 在代码文件中include消息类型对应的头文件
- 在main函数中通过NodeHandle发布一个话题并得到消息发送对象
- 生成要发送的消息包并进行发送数据的赋值
- 调用消息发送对象的publish()函数,将消息包发送到话题中。
- 话题查看小结
- 查看活跃话题列表 rostopic list
- 查看话题内容 rostopic echo 话题名称
- 查看话题频率 rostopic hz 话题名称
- 话题订阅小结
- 确定话题名称和消息类型
- 在代码文件中include消息类型对应的头文件
- 在main函数中通过NodeHandle大管家订阅一个话题并设置消息接收回调函数
- 定义一个回调函数,对接收到的消息进行处理
- main函数中需要执行ros::spinOnce(),让回调函数能够响应接收到的消息包
- 编写launch文件,启动多节点
- 使用launch文件,可以通过roslaunch指令一次启动多个节点
- launch中,节点添加output="screen",可让节点信息输出到终端(ROS_WARN不受该属性限制)
- 为节点添加aunch-prefix="gnome-terminal -e",可让节点单独运行在一个独立终端中。
- C++实现机器人运动控制,实现思路
- 构建一个新软件包,包名vel_pkg
- 软件包新建vel_node节点
- 向NodeHandle申请发布话题/cmd_vel,并拿到发布对象vel_pub
- 构建geometry_msgs/Twist类型消息包vel_msg,用来保存要发送的速度值
- 开启循环,不停使用vel_pub对象发送速度消息包vel_msg