ROS实例学习之Xbox控制turtlesim
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} )
上一篇: ros学习之topic实例3