apollo调试rosserial

apollo 调试 rosserial

一、准备

     1、  进入apollo docker环境 执行

    bash docker/scripts/dev_start.sh -l -t dev_5

    bash docker/scripts/dev_into.sh

    后面的dev_5 是之前执行保存docker环境

    docker ps #获取commitID 2d18dd8819a6

    docker commit 2d18dd8819a6 apolloauto/apollo:dev_5

 

    2、准备好rosserial测试硬件,arduino或者stm32 ros_lib示例,我们用hello world 例子

    通过发布节点chatter的String消息,所以需要在apollo docker里面建一个工作空间,创建一个listener包。

listener.cpp内容如下

#include "ros/ros.h"

#include "std_msgs/String.h"

// 回调函数

void chatterCallback(const std_msgs::String::ConstPtr& msg)

{

ROS_INFO("I heard: [%s]", msg->data.c_str());

}

int main(int argc, char **argv)

{

ros::init(argc, argv, "listener");

ros::NodeHandle n;

// 告诉master需要订阅chatter topic消息

ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);

ros::spin(); // 自循环

return 0;

}

注意编译的时候用

catkin_make_isolated

如果用catkin_make 会提示错误

二、下载rosserial到你的工作空间

git clone https://github.com/ros-drivers/rosserial.git

    因为下载默认版本是jade-devel,而apollo的版本是 indigo版本,否则,执行会出错。

所以执行如下

   cd src/rosserial

   git branch -a

  git chcekout origin/indigo-devel

git checkout indigo-devel

  git branch -a

  git pull

三、执行roscerial 测试命令

先执行listrener节点后,再执行如下([  chmod 777 /dev/ttyACM0])

rosrun rosserial_python serial_node.py /dev/ttyACM0

会提示如下错误 ImportError: No module named cli.find_pkg

四、解决问题

    1、安装 serial module

sudo apt install python-pip //python2

sudo apt install python3-pip //python3

2、安装rosserial

sudo apt-get install ros-indigo-rosserial

至于为何还需要安装ros-indigo-rosserial ,上面不是已经有rosserial了吗?这个问题我也搞不清楚,反正安装之后就测试正常。

猜你喜欢

转载自blog.csdn.net/ycy_dy/article/details/80820458