Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9085530
  • 博文数量: 1732
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19830
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1732)

文章存档

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2019-02-27 15:39:17

完成了底盘ROSSerial的接入后, 能提供的能力

点击(此处)折叠或打开

  1. 通讯硬件接口
  2.     ROSSerial

  3. 通讯软件接口
  4. 底盘端
  5.     发布服务 /srv_chassis_version
  6.         格式为 big_msgs::ChassisVersionInfo

  7.     发布话题 chassis_debug
  8.         格式为 std_msgs::String

  9.     发布话题 imu
  10.         格式为 sensor_msgs::Imu

  11.     发布话题 eular_pose
  12.         格式为 big_msgs::ChassisEularAngle

  13.     发布话题 sensor_state
  14.         格式为 big_msgs::ChassisSensorState

  15.     发布话题 odom
  16.         格式为 nav_msgs::Odometry

  17.     发布话题 joint_states
  18.         格式为 sensor_msgs::JointState

  19. 主控端
  20.     发布话题 cmd_vel
  21.         格式为 geometry_msgs::Twist

  22.     发布话题 reset
  23.         格式为 std_msgs::Empty

  24.     发布话题 time_sync
  25.         格式为 builtin_interfaces::Time

  26.     发布话题 heartbeat //频率发布, 如果底盘一段时间内无法收到握手, 则任务连接已经断开, 则停止电机运行.
  27.         格式为 std_msgs::Empty

  28.     发布话题 motor_power //是否刹车
  29.         格式为 std_msgs::Bool
仿照 teleop的代码使用把线速度和弧速度分开的方式, 能更好的控制底盘的行动能力.

目前在 joule上添加 激光雷达 rplidar A3M1的支持.
根据厂家的 支持
    
    

rplidar A3M1 一般用于室内机器人, 支持2D 360扫描, 频率 10Hz-20Hz, 高达16K/秒的采样率, 距离能达到 25米. 多种扫描模式可选(例如sensitiy模式).  顺时针角度, 有线的点为 180度. 其map的坐标系为 Y正向=90度, X正向=180度.


rplidar_ros数据包提供了接口  数据输出.

rplidar_ros数据包提供的节点
    rplidarNode : 获取 prlidar A3的原始数据并整理成  格式输出.
        topic话题:   
            scan  提供   数据输出
        services服务: 雷达电机部分的启停.
             stop_motor()
              start_motor
()
        parameters: 参数
    serial_port (string, default: /dev/ttyUSB0) 雷达所在串口
            
serial_baudrate (int, default: 115200)

    frame_id (string, default: laser)
           inverted (bool, default: false)  激光雷达是否是反向安装的.
           angle_compensate (bool, default: true) 是否需要角补偿
           scan_mode (string, default: std::string())  扫描模式设定

激光雷达要在主控机器上识别要做的操作

点击(此处)折叠或打开

  1. KERNEL=="ttyUSB*", MODE="0666"
  2. 执行数据包内的脚本
  3. ./scripts/create_udev_rules.sh
  4. 在启动ROS节点或者 launch文件时, 关于串口部分的参数,可以使用如下方式

  5. <param name="serial_port" type="string" value="/dev/rplidar"/>

提供的范例

点击(此处)折叠或打开

  1. 确认A3雷达存在
  2. ls -l /dev |grep ttyUSB
  3. 给出访问权限
  4. sudo chmod 666 /dev/ttyUSBx
  5. 加载节点并扫描结果可以在rviz中看到.
  6. $ roslaunch rplidar_ros view_rplidar_a3.launch #for rplidar A3

  7. 如果看原生数据可以使用
  8. roslaunch rplidar_ros_a3 rplidar.launch #for rplidar A3
  9. 此时可以看到 rostopic list 包括 /scan 
  10.     rosservice list 看到 /start_motor /stop_motor
  11.     执行 rosservice call /start_motor 启动扫描.    
  1. rosrun rplidar_ros rplidarNodeClient
  2.    能看到众多数据. 
  3.     [INFO] [时间点 double 秒] :: [角度, 距离 double 米]




阅读(7696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~