Ros学习注意点
-
编译问题
-
回调函数不能有返回类型,严格按照实例程序编写
-
第三方库的问题,packet.xml里面必须加上自己的依赖文件
-
之前文档里面介绍的有点问题。
主要表现在:当你建立包的时候就写入了依赖,那就不需要再写了。
当你没有写或者重新定义了一个自定义的msg,你必须包含进去,当然假如用标准的没有msg的话,你是不需要加的。比如下面的hello 包
CMake
从上面这些文件中,我们可以看出,CmakeList当中,配置的是
Include和lib。Packg.xml里面配置的是 include<> 头文件。
加入msg,之后,需要加入下面的 message_generation 和 message_runtime。表示我们用的是 msg生成的头文件。
-
-
git相关问题
当所有都搞不定的时候,就直接clone 一个新的git 仓库。里面有新的信息,然后在里面运用git 命令。
主要参考 廖雪峰的网站。
-
串口驱动相关
参考资料: http://blog.csdn.net/u011853479/article/details/51261704
-
编译时候需要注意
一般情况下,将下载的串口驱动放在Downloads目录下
然后更改Makefile里面的信息,将软件安装到 opt/serial 当中去。
安装完之后,配置一下profile 或者 bashrc 即可。
-
测试串口注意点
请看上面的命令:
我们一个通过 ls –l /dev/ttyUSB* 来查看USB串口的信息。有的话会出现。
我们可以通过 echo "xxx" > /dev/ttyUSB0 当中去。
假如提示权限不足,我们通过 sudo chmod 777 /dev/ttyUSB0来搞定。
还有就是在插入USB-Serial 以后,一般不需要安装串口驱动。
-
-
编译程序相关
我们发现每次 catkin_make一下,就会让我们重新 更改串口 权限一次。
而且 source devel/setup.bash.
最后一个注意点就是,串口的路径一定是 /dev/ttyUSB*.
这个千万不要错。
-
实际发送过程中的问题
该延时延时,不然发送速度过快会有问题,接收也是一样的。
而且,我们发现目前仅支持 写入和读取 string 类型数据,char array目前得到的一直是空值。
实际得到的字符串个数,我们用 str.size() 来弄。
-
ros 中自定义结构体,无法通过 rostopic echo node 来查看信息,会报错。说是找不到 msg
因为目前ros好像仅仅支持 标准库的数据格式的输出。
-
底层测试数据
FF A5 5A 09 81 00 5A 00 00 32 03 00 00 19 //三挡,车速为0,转向90度
FF A5 5A 09 81 FF A6 00 00 32 03 00 00 64 //三挡,车速为0,转向-90度
FF A5 5A 09 81 00 00 00 00 00 03 00 00 8D //三挡,车速为0
FF A5 5A 09 81 00 00 00 0A 00 03 00 00 97 //三挡,车速为1
FF A5 5A 09 81 00 00 00 32 00 03 00 00 BF //三挡,车速为5
FF A5 5A 09 81 00 00 00 64 00 03 00 00 F1 //三挡,车速为10
FF A5 5A 09 81 00 00 00 96 00 03 00 00 53 //三挡,车速为15
FF A5 5A 09 81 00 00 00 C8 00 03 00 00 55 //三挡,车速为20
FF A5 5A 09 81 00 00 01 2C 00 03 00 00 BA //三挡,车速为30
FF A5 5A 09 81 00 00 01 90 00 03 00 00 1E //三挡,车速为40
FF A5 5A 09 81 00 00 01 F4 00 03 00 00 82 //三挡,车速为50后期可以直接使用。
-
串口数据异常
Ros下面在用串口的时候,用的网上别人的驱动,遇到的问题很奇怪,当我们用char 数组去发送数据的时候,无法发送出去。
只有用 unsigned char去发送数据的时候,才可以发送出去。
所有 short 或者int 型数据,务必改成 unsigned short 或者 其他无符号形式发送出去。