ROS实例学习之Xbox控制turtlesim

    xiaoxiao2023-10-08  154

    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} )

    最新回复(0)