在turtlebot的mininal.launcher的核心节点为mobile_base。
turtlebot_world.launch则是由gazebo发布。
mobile_bas_nodelet_manager为整个设备的基础节点,类似于kobuki的设备控制台。通过详细了解sub/pub topics和params,可以对mobile节点的作用和kobuki robot有哪些子设备和每个子设备的功能有初步了解。
实际主题前的~为"/mobile_base/"
xx:~/catkin_ws$ rostopic list | grep mobile_base
/mobile_base/commands/motor_power
/mobile_base/commands/reset_odometry
/mobile_base/commands/velocity
/mobile_base/events/bumper
/mobile_base/events/cliff
/mobile_base/sensors/bumper_pointcloud
/mobile_base/sensors/core
/mobile_base/sensors/imu_data
/mobile_base_nodelet_manager/bond
订阅的主题:
~commands/velocity (geometry_msgs/Twist) 设置预期速度,控制移动底盘
rostopic pub -r 10 /mobile_base/commands/velocity
~commands/motor_power(kobuki_msgs/MotorPower)开启关闭电机电源
~commands/external_power (kobuki_msgs/ExternalPower) 开启关闭额外的电源
~commands/reset_odometry (std_msgs/Empty) 重启里程计数器
~commands/sound (kobuki_msgs/Sound) 发送播放的声音
~commands/led1 (kobuki_msgs/Led) led1的控制命令
~commands/led2 (kobuki_msgs/Led) led2的控制命令
~commands/digital_output (kobuki_msgs/DigitalOutput) 设置数字输出端口
~commands/controller_info (kobuki_msgs/ControllerInfo) 对robot的轮胎速度控制器设置预期的PID增益
发布的主题:
odom (nav_msgs/Odometry)基于robot的陀螺仪和电机编码器计算出来的里程信息
包括:位置信息和速度信息
diagnostics (diagnostic_msgs/DiagnosticArray)1Hz的系统诊断信息
joint_states (sensor_msgs/JointState)更新轮胎节点信息
~events/button (kobuki_msgs/ButtonEvent)按键被按下或抬起事件
~events/bumper (kobuki_msgs/BumperEvent)减震器被挤压或松开事件
~events/cliff (kobuki_msgs/CliffEvent)悬崖传感器事件,是否接近或离开悬崖
~events/wheel_drop (kobuki_msgs/WheelDropEvent)轮胎悬空事件,当悬空时发布
~events/power_system (kobuki_msgs/PowerSystemEvent)电源系统事件,插入/拔出,高/低电量,更换电源
~events/robot_state (kobuki_msgs/RobotStateEvent)robot 上线或下线事件
~events/digital_input (kobuki_msgs/DigitalInputEvent) 数字输入端口改变事件
~sensors/imu_data (sensor_msgs/Imu) 陀螺仪数据信息,提供它的航向和角速度
~sensors/imu_data_raw (sensor_msgs/Imu) 3D陀螺仪的原始信息(x,y,z)
~sensors/dock_ir (kobuki_msgs/DockInfraRed) 红外传感器对接信息
~sensors/core (kobuki_msgs/SensorState)kobuki整体传感器详细信息,50Hz
~version_info (kobuki_msgs/VersionInfo)kobuki版本,UID,平台特点。
~controller_info (kobuki_msgs/ControllerInfo) robot 轮胎速度控制器的PID增益
~debug/raw_data_stream (std_msgs/String) 从robot接收到的原始byte数据
~debug/raw_data_command (std_msgs/String) 发送到robot的原始byte数据
~debug/raw_control_command (std_msgs/Int16MultiArray) 包括两个控制命令的原始数据,从xxx node接受到的命令和发送到robot的命令。
参数:
~device_port (string, default: ) linux usb 设备端口,出厂默认为/dev/kobuki
~wheel_left_joint_name (string, default: wheel_left_joint) 左轮胎关键状态的名称
~wheel_right_joint_name (string, default: wheel_right_joint) 右轮胎关键状态的名称
~battery_capacity (double, default: 16.5) 电池放电电压
~battery_low (double, default: 13.5) 电量警告标准
~battery_dangerous (double, default: 13.2) 电量危险标准
~cmd_vel_timeout (double, default: 0.6) 新命令超时时间
~publish_tf (bool, default: False) false: 大多数情况下tf从odom到base_link . true:由robot_pose_ekf发布tf,当odom不使用的情况下
~use_imu_heading (bool, default: True) 使用imu读航向方式代替编码其,这是kobuki的正常模式,因为陀螺仪非常准确。disable时当你想要使用更复杂的方式,例如过滤并使用robot_pose_ekf。
~odom_frame (string, default: odom) 里程计数器tf框架名字
~base_frame (string, default: base_footprint) 基础TF框架名称
~acceleration_limiter (bool, default: false) enable当想要kobuki去做最小平滑加速的速度命令输入。相当与kobuki node的辅助node,用来对robot做平滑加速而不需要连续发布命令。
原文链接:https://blog.csdn.net/sunyoop/article/details/77931407
参考wifi:http://wiki.ros.org/kobuki_node