ROS----ROSSerial的使用

OS: ubuntu 16.04

ROS:kinetic

1.安装arduino  sudo apt-get install arduino

2.安装ros包  sudo apt-get install ros-kinetic-rosserial-arduino

sudo apt-get install ros-kinetic-rosserial

3.设置arduino的SketchBook,将ros_lib弄进去,关于SketchBook的文件目录,在File->Preferences

也可以自己定义该目录.

cd <sketchbook>/libraries 如果没有libraries目录,自己创建这个目录就可以啦,如果里面已经包含ros_lib目录,请使用rm -rf ros_lib ,防止发生冲突.
rosrun rosserial_arduino make_libraries.py .   用来生成ros_lib库,(注意使用.,当前目录)

由于ubuntu下截图不怎么好用,就用了官网的图,道理是一样的。可以依据这些demo来制作ardunio下的节点,和服务。

关于arduino IDE的串口链接,在 Tools->Serial Port下,选材/dev/ttyACM×(× 可能是0,1,2,3...)

关于brltty和Arduino之间冲突,但在unbuntu 16.04下没什么影响,在Tools->Serial Port 依然可以看到/dev/ttyACM*,并且成功烧入。

并不是一定要卸载brltty,这个我觉得要实际试过才可以这么说.

rosrun rosserial_python serial_node.py /dev/ttyACM* 用来启动rosserial节点。

跑的时候,如果arduino 串口监听,rosserial一起启动,经常导致串口异常,导致串口插拔,才可以重新使用。这个问题,比较不好理解,linux串口非独占的。目前还在解决中。

由于linux串口的跳动,必须固定串口。

lsusb 可以查看当前的usb口。

当然也可以用dmesg

可以查看具体的设备。我觉得用arduino 的serial port看起来更合理点。

如果当前arduino的串口好是/dev/ttyACM0,

使用udevadm info /dev/ttyACM0 查看串口的具体信息。

这中方式查看我觉得不是很好,就使用lsusb -vv

可以看得更清楚

可以清楚的看到 idVendor 和idpProduct,这两个是自定义串口的重要参数。

根据这些信息重写串口设备命名规则,采用Linux的udev来自定义规则来管理设备名称

(1)https://unix.stackexchange.com/questions/66901/how-to-bind-usb-device-under-a-static-name?noredirect=1&lq=1

具体步骤如下。

/etc/udev/rules.d/10-local.rules

修改这个文件,我发现不存在这个文件(ubuntu 16.04),那么我 touch 10-local.rules (其实这个文件名可以随便定义,但是毕竟不是太了解,所以按照Q&A来做,防止无法复现)

接着 根据查询的idVendor 和idpProduct

ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="MyAruduino"添加到10-local.rules文件中
udevadm info -a -p $(udevadm info -q path -n /dev/ttyACM0)

然后重启电脑。

但发现Arduino IDE中显示的还是/dev/ttyACM0,所以我觉得直接使用cutecom串口调试工具来使用.

cutecom -> sudo apt-get install cutecom(安装)

Device:直接写/dev/MyArduino ,下拉是无法选择的,

我在Arduino中写serial.write("ggg"); 在cutecom中已经显示数据,说明可用。

有一点要说明,当你直连Arduino的烧入线的时候,/dev/ttyACM0,当你用扩展板的是/dev/ttyUSB*.(这个是有区别的)。

至于ROSSerial其他的问题,必须在长期使用中慢慢积累。



 


				
时间: 2024-10-27 04:53:19

ROS----ROSSerial的使用的相关文章

Ros使用Arduino 2 使用rosserial创建一个publisher

1 启动arduino 将arduino开发板连接到电脑的usb口,在arduino IDE中进行设置. 选择Tools->Board,选择你所使用的arduino开发板的类型,所使用的arduino开发板是arduino pro min. 设置好开发板之后,继续选择Tools->Serial Port->/dev/ttyUSB1. 2 打开ROS例程 设置完成以后,在arduino IDE中,选择File->Examples->ros_lib->HelloWorld,

Ros使用Arduino 3用rosserial创建一个subscriber

在前面的一节中,我们已经使用arduino创建了一个publisher节点,接下来将会用arduino来创建一个subscriber,接收电脑传去的信息并做出相应的反应. 1启动Arduino 将arduino开发板连接到电脑的usb口,在arduino IDE中进行设置. 选择Tools->Board,选择你所使用的arduino开发板的类型,所使用的arduino开发板是arduino pro min. 设置好开发板之后,继续选择Tools->Serial Port->/dev/tt

ROS+mbed

试了一下, 用stm32F103RB nucleo的板子, 跑mbed, 跟ros的库, 发布一个std_msg/String, 为什么不直接发布里程? 因为经常报message比buffer大的错误. 没办法, 只好先用stm32通过串口, 发布有用的x, y, 跟yaw值, string格式, 然后ROS端起一个节点去解析string, 转成里程跟tf. stm32端: /* * rosserial Publisher Example * Prints "hello world!"

Ros使用Arduino 1安装Arduino IDE

安装Arsuino IDE sudo apt-get install arduino 设置库文件路径 在使用ROS的库文件时,必须在代码的开头包括: #include <ros.h> 接下来安装rosserial sudo apt-get install ros-indigo-rosserial-arduino sudo apt-get install ros-indigo-rosserial 安装ros_lib 打开你的sketchbook目录,在下面新建一个libraries目录,一般sh

ROS + STM32 + mbed

目前的进度是, 首先, 用mbed, 在stm32 f103RB nucleo板子上, 跑一个简单的publisher, 然后用usb连接到PC上的ROS. mbed的main.cpp: /* * rosserial Publisher Example * Prints "hello world!" */ /* * left_forward PC_0 * left_backward PC_3 * right_forward PC_2 * right_backward PC_1 * le

ROS之STM32来啦

mbed是ARM自己high的一个所谓IoT的平台, 甚至不惜做了一个巨难用的在线编译IDE, 蛋疼欲裂, 内个字体非常非常反人类, 唯一的解决办法是用chrome浏览器, 然后下一个叫mbedEditor++的插件, 修改编译器的代码字体, 不然你迟早要瞎. OK, 进入正题, 我现在玩的ROS还是基于PC平台的, 如果要用PC来控制电机, 并收集电机的里程数据, 也就是说, 要将ROS跟模拟量之间连接起来, 有几个方案: http://wiki.ros.org/rosserial: 用Aru

8个节点,每个节点上布置6个ROS,组装都用250,读出都用251,事例率为645.3Hz

组装都用250网段,读出都用251网段.除了黄色部分以外的节点都是cmm03节点. 平均事例率为:645.26Hz, ros所在节点的cpu idle 为17%.

ROS turtlebot_follower :让机器人跟随我们移动

ROS turtlebot_follower 学习 首先在catkin_ws/src目录下载源码,地址:https://github.com/turtlebot/turtlebot_apps.git 了解代码见注释(其中有些地方我也不是很明白) follower.cpp #include <ros/ros.h> #include <pluginlib/class_list_macros.h> #include <nodelet/nodelet.h> #include &

使用ros hector_mapping建地图

ros中建地图方式有两种: 首先1.首先下载hector_slam包到你工作空间的src下 命令: cd ~/catkin/src git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git cd .. catkin_make 在~/catkin_ws/src/hector_slam/hector_slam_launch/launch/新建一个demo.launch <?xml version="1.0"?&

编写第一个ROS(创建工作空间workspace和功能包package)

刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配置好ROS. 1.创建工作空间(workspace) 我们所创建功能包package,应该全部放到一个叫做工作空间(workspace)的目录中 .你可以把目录存储在你账号的任何位置例如,我所创建的工作空间的是路径/home,同时你可以用任何你喜欢的名字命名你的工作空间,我的工作空间名为 test,现在请使用标准的mkdir命令行去创建一个工作空间.我首先建立一个工作空间,名字为test, 此处创建