欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ROS实例学习之Xbox控制turtlesim

程序员文章站 2022-07-12 09:49:11
...

github源码:https://github.com/FProgrammerLIU/teleop_joy

wiki教程:http://wiki.ros.org/joy

准备工作

ubuntu16.04 ROS-kinetic 不同版本可能会出现一些问题

ROS内置joy功能包,turtlesim功能包

功能实现

joy package含有节点,节点实现读取Xbox数据并进行解析,并发布在joy topic

可以直接订阅joy topic接受数据,使用sensor_msgs/joy类型直接存储信息

发送到turtlesim的节点turtle1/cmd,此过程使用geomotry/twist类型发布数据

实现难点

取得msg中的数据: 分两种类型,直接定义类型对象,twist.angular.x,以点取值;另,传参数为类型指针,使用->取得,joy->axes[]

参数管理器的使用:

在launch文件中传参,<node><param/></node>

  <param name="axis_linear" value="1" type="int"/>

在node中接受参数,参数名自定义,两边相同,参数二为设置参数,参数三为没有接收参数时的默认值

  nh_.param("axis_linear", linear_, linear_);

信息的输出:ROS_INFO(“aaa d%”, aaa);如果没有launch文件时,可以直接输出。加入launch文件后会使信息写入控制台,此时在<node>加入参数 output = "screen"

CMakeList.txt的编写:

include_directories( include  ${catkin_INCLUDE_DIRS}
)add_executable(teleop_turtle_joy_main src/teleop_turtle_joy_main.cpp src/teleop_turtle_joy.cpp)
add_dependencies(teleop_turtle_joy_main ${catkin_EXPORTED_TARGETS})
target_link_libraries(teleop_turtle_joy_main   ${catkin_LIBRARIES} )