Sp-puck入门教程-10.Sp-puck上运行ROS节点
ROS Kinetic已集成在Sp-puck系统中。
为在Sp-puck中运行基于CPP和Python开发的ROS节点,可用于通信系统基于无线远程控制一章中所示的第三种架构(计算机与Sp-puck建立WiFi连接,然后Sp-puck负责根据从计算机控制器接收到的数据通过I2C控制机器人);更详细的架构如下所示:
初始配置
Sp-puck与计算机(PC)应该处于同一个局域网内。
Sp-puck的ROS工作区位于~/rosbots_catkin_ws/
cd ~/rosbots_catkin_ws/
ROS驱动源码位于
cd ~/rosbots_catkin_ws/src/epuck_driver_cpp/
获取最新ROS源码
最新版本的e-puck2版本ROS节点可以从git下载:
git clone -b pi-puck https://github.com/gctronic/epuck_driver_cpp.git
要更新到最新版本,请按照下列步骤操作:
cd ~/rosbots_catkin_ws/src/
rm -R -f epuck_driver_cpp
git clone -b pi-puck https://github.com/gctronic/epuck_driver_cpp.git
#或者
git clone -b pi-puck http://mirror.ghproxy.com/https://github.com/gctronic/epuck_driver_cpp.git
cd ~/rosbots_catkin_ws/
catkin_make --only-pkg-with-deps epuck_driver_cpp
运行roscore
在树莓派上启动e-puck2 ROS节点之前,请发出以下命令:
分别查看树莓派和主节点PC的ip地址
sudo ifconfig
配置网络
echo "export ROS_MASTER_URI=http://192.168.11.125:11311" >> ~/.bashrc
echo "export ROS_HOSTNAME=192.168.11.125" >> ~/.bashrc
source ~/.bashrc
其中roscore-ip是运行的机器的 IProscore
然后开始roscore发出roscore
运行ROS节点
在Sp-puck上启动e-puck2 ROS节点之前,请发出以下命令:
export ROS_IP=sppuck-ip
export ROS_MASTER_URI=http://roscore-ip:11311
其中
sppuck-ip是Sp-puck扩展的IP,
roscore-ip是运行机器的IP
(如果直接在Sp-puck上运行,则 roscore可以是相同的IP)。
roscore
要启动e-puck2 ROS节点,请发出以下命令:
roslaunch epuck_driver_cpp epuck_minimal.launch debug_en:=true ros_rate:=20
测试
您可以通过简单地显示某个主题发布的消息来测试机器人和计算机之间的通信是否真正正常工作,例如:
rostopic echo /proximity0
您可以通过发出命令来获得所有主题的列表:
rostopic list
使机器人直接向前移动
rostopic pub -1 /mobile_base/cmd_vel geometry_msgs/Twist -- '[4.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
原地旋转机器人
rostopic pub -1 /mobile_base/cmd_vel geometry_msgs/Twist -- '[0.0, 0.0, 0.0]' '[0.0, 0.0, 1.0]'
更改LED状态
rostopic pub -1 /mobile_base/cmd_led std_msgs/UInt8MultiArray "{data: [LED1, LED3, LED5, LED7]}"
rostopic pub -1 /mobile_base/cmd_led std_msgs/UInt8MultiArray "{data: [1, 1, 1, 1]}"
Python版本ROS
Python版本可以在这里找到:
https://github.com/yorkrobotlab/pi-puck-ros
<< 上一篇
下一篇 >>