使用ROS通过串口获取遥控器信号
硬件:
AT9S遥控器和R9DS接收机
TX2或者Jetson nano或者DJI manifold2G
软件:
Ubuntu16.04 ROS-kinetic
实现方法:
一:首先安装ROS下的Serial功能包
sudo apt-get install ros-kinetic-serial
P.S. 如果说使用此命令报404错误,可能是软件源的问题,可直接下载deb文件,如serial库http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-serial/
然后在下载的目录下使用该命令进行安装
sudo dpkg -i xxx.deb //是安装包的准确名
二:查看串口设备,确认自己所接入的串口是哪一个
ls /dev | grep tty*
三:安装ubuntu下的串口配置助手,sudo install minicom,并使用该工具查看通信是否正常,具体的操作过程可参考其他博客。
四:在ROS下创建工作空间和相关的功能包
创建工作空间,设置环境变量
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
创建功能包
cd ~/catkin_ws/src/
catkin_create_pkg uart_communication std_msgs rospy roscpp
五:自定义存储遥控器消息的消息类型
cd ~/catkin_ws/src/uart_communication
mkdir msg
touch remoter_Raw.msg
修改该文件内容,其中ch1-ch14代表遥控器各个通道的消息,可根据自己需求设计
Header header
uint32 ch1
uint32 ch2
uint32 ch3
uint32 ch4
uint32 ch5
uint32 ch6
uint32 ch7
uint32 ch8
uint32 ch9
uint32 ch10
uint32 ch11
uint32 ch12
uint32 ch13
uint32 ch14
六:修改package.xml配置文件
gedit ~/catkin_ws/src/uart_communication package.xml
在package.xml文件中加入以下两行
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
七:修改CMakeLists.txt的内容
gedit ~/catkin_ws/src/uart_communication CMakeLists.txt
在该文件中
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
serial
)
add_message_files(
FILES
remoter_Raw.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
CATKIN_DEPENDS message_runtime
)
八:编译
cd ~/catkin_ws
catkin_make
九:查看消息是否添加成功
rosmsg show uart_communication/remoter_Raw
说明消息添加成功