工作笔记02.编译功能包并配置传感器

0.使中控机能运行roscore的设置(非普遍性问题)

在安装好ROS开发环境后,运行 roscore , 显示ping 本地服务IP。
在这里插入图片描述图2-1 roscore无法运行的显示信息

解决方案:在配置文件 ./bashrc中添加如下语句:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

再次运行 roscoe , 启动成功:
在这里插入图片描述图2-2 roscore成功运行

1.功能包依赖安装

由于版本问题,在所给的功能包中,要删除代表cartographer的功能包,并且安装博文 01.绍兴车环境编译(笔记本模拟编译) 中“3.2 cartographer的编译安装”的内容在笔记本上安装编译了cartographer功能包。

现在,需要在中控机中安装功能包编译工程中所需的依赖,建议新手使用以下命令一键安装所有melodic版本的ros功能包依赖:

sudo apt-get install ros-melodic-*

安装完成,基本在编译过程中不会因为ros的功能包依赖问题报错。

报错:

在处理时有错误发生:
 /var/cache/apt/archives/ros-melodic-libphidget21_0.7.10-1bionic.20200801.013518_amd64.deb
 /var/cache/apt/archives/ros-melodic-lvr2_20.7.1-1bionic.20200710.132440_amd64.deb
 /var/cache/apt/archives/ros-melodic-mrpt2_2.0.4-1bionic.20200622.141446_amd64.deb

输入:sudo apt-get install -f

如果不能解决,参考 01.绍兴车环境编译(笔记本模拟编译) 中“3.1 一些功能包的编译”的 “报错4”解决方案。

2.编译功能包

  1. 在中控机主目录新建工作空间

    mkdir -p ~/sx_ws/src
    cd ~/sx_ws/src
    catkin_init_workspace
    
  2. 使用快捷键“ctrl+h”显示隐藏文件,将笔记本工作空间/src内的功能包全部复制到中控机新建的工作空间sx_ws/src中
    注意,不复制隐藏文件、CMakeLists.txt文件。(纯粹复制需要编译的功能包)

  3. 编写整个工作空间

    cd ~/sx_ws/
    catkin_make_isolated
    

4.添加环境变量:
仅在当前终端有效:source ~/sx_ws/devel_isolated/setup.bash
在所有终端有效,需要配置.bashrc文件

  • 方法1:打开 .bashrc 直接添加

    source ~/sx_ws/devel_isolated/setup.bash
    
  • 方法2:在终端使用 echo 命令进行添加

    echo "source ~/sx_ws/devel_isolated/setup.bash" >> ~/.bashrc 
    

3.配置传感器参数

3.1 配置IMU

3.1.1 配置IMU参数

  1. 使用命令lsusb,显示本机的usb设备列表:
    未插入IMU:
    在这里插入图片描述图2-3 插入IMU之前的显示

插入IMU后:
在这里插入图片描述图2-4 插入IMU后的显示

鼠标选择高亮标识了新加入的IMU 的usb消息,接下来需使用其ID信息。

  1. 使用 ls /dev ,查询Ubuntu上的设备文件信息:
    未插入IMU之前:
    在这里插入图片描述图2-5 显示设备信息

  2. 目标:配置文件,使得IMU的设备名可以在 ls /dev 中显示:
    /etc/udev/rules.d/目录下,新建文件:usb.rules

sudo gedit /etc/udev/rules.d/usb.rules

在打开的文件中,输入如下命令:

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="usbIMU"

KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", SYMLINK+="usbDIPAN"

其中是已经配置好的IMU和底盘信息,其中usbIMU代表IMU,另一个代表底盘。

  • ATTRS{idVendor} :ID名前半段
  • ATTRS{idProduct}:ID名后半段

配置好usb.rules文件后,重启电脑,输入 ls /dev,显示新增的usbIMU:
在这里插入图片描述图2-6 在设备信息中显示usbIMU

3.1.2 启动IMU驱动文件

  1. 配置 ~/sx_ws/src/iexpress_imu_driver/imuyesence/launch/中的imuyesence.launch文件,修改port_name的值为新配置的/dev/usbIMU
 <param name="port_name" value="/dev/usbIMU" />
  1. 删除该文件中语句:
<node name="base_imu_link" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0   /i_base_link /i_imu 50"/> 
  1. 启动该配置文件:
roslaunch imuyesence imuyesence.launch

显示如下信息,表示IMU配置成功:
在这里插入图片描述图2-7 获取IMU数据

  1. 调试
    使用rostopic list ,显示订阅消息,查看IMU消息是否被订阅:
    在这里插入图片描述图2-8 显示订阅消息

使用如下命令,打印IMU订阅的消息:

rostopic echo /iexpress/iexpress_imu_driver/imuyesence/imu

显示如下:
在这里插入图片描述图2-9 显示IMU的订阅消息详情

3.2 配置雷达参数

具体操作可查询该雷达的产品说明书,本雷达的产品说明书在RSView软件的help中可以找到。

3.2.1 在Windows上标定雷达参数

任务1:在windows系统上配置雷达的ip和端口号。

  • **打开windows的适配器管理,配置以太网的ipv4的协议,将ip设置为雷达说明书的默认ip:

    192.168.1.102
    

    端口号设置默认:255.255.255.0

任务2:设置雷达参数:

  1. 插入雷达,使用管理员模式打开RSView,显示界面如下:
    在这里插入图片描述
    图2-10 软件RSView打开显示界面

  2. 选择File -> Open -> Sensor Stream
    在这里插入图片描述
    图2-11 打开 Sensor Stream

选择 RS16、Mode:
在这里插入图片描述
图2-12 选择RS16、Mode3

  1. 打开Tools -> Data Port Setting
    在这里插入图片描述
    图2-13 打开Data Port Setting

如果雷达是出厂设置,端口默认为6699,7788:
在这里插入图片描述
图2-14 雷达说明书

将软件的端口也设置成6699、7788,即可显示点云数据

  1. Tools -> RS-LiDar information:
    在这里插入图片描述
    图2-15 雷达参数设置路径

Get 获取当前雷达设置。使用Set LiDAR 完成雷达的参数设置。
调整当前雷达的IP和端口(自设定)。
设置完成的两个雷达的参数如下:
在这里插入图片描述
图2-16 1号雷达参数

在这里插入图片描述
图2-17 2号雷达参数

到现在为止,雷达的参数设置成功,修改Ubuntu中雷达驱动的功能包中配置文件的参数,更改IP和端口到一致的设定。

3.2.2 在Ubuntu上标定雷达参数并测试文件

  1. 在Ubuntu系统上设置以太网的IP为:
192.168.1.102
  1. 修改雷达驱动的launch文件的IP和端口,启动launch文件,测试1颗雷达是否启动:
    修改IP,端口号:
<param name="device_ip" value="192.168.1.200" />
<param name="msop_port" value="6699"/>
<param name="difop_port" value="7788"/>

打开终端,进入工作空间:

cd ~/sx_ws/
roslaunch rslidar_pointcloud_new rs_lidar_16.launch

启动信息如下:

lxr@lxr-HP-ZHAN-66-Pro-14-G3:~/sx_ws$ roslaunch rslidar_pointcloud_new rs_lidar_16.launch 
... logging to /home/lxr/.ros/log/b6e6f9e4-f3fd-11ea-93fe-b05cda3b43d8/roslaunch-lxr-HP-ZHAN-66-Pro-14-G3-8097.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://lxr-HP-ZHAN-66-Pro-14-G3:41685/

SUMMARY
========

PARAMETERS
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/angle_path: /home/lxr/sx_ws/s...
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/channel_path: /home/lxr/sx_ws/s...
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/curves_path: /home/lxr/sx_ws/s...
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/frame_id: i_scan
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/intensity_mode: 1
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/max_distance: 200
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/min_distance: 0.4
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/model: RS16
 * /iexpress/iexpress_rs_driver/ns1/cloud_node/resolution_type: 0.5cm
 * /iexpress/iexpress_rs_driver/ns1/rslidar_node/cut_angle: 0
 * /iexpress/iexpress_rs_driver/ns1/rslidar_node/device_ip: 192.168.1.201
 * /iexpress/iexpress_rs_driver/ns1/rslidar_node/difop_port: 8877
 * /iexpress/iexpress_rs_driver/ns1/rslidar_node/model: RS16
 * /iexpress/iexpress_rs_driver/ns1/rslidar_node/msop_port: 9966
 * /rosdistro: melodic
 * /rosversion: 1.14.9

NODES
  /iexpress/iexpress_rs_driver/ns1/
    cloud_node (rslidar_pointcloud_new/cloud_node)
    rslidar_node (rslidar_driver_new/rslidar_node)

auto-starting new master
process[master]: started with pid [8107]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to b6e6f9e4-f3fd-11ea-93fe-b05cda3b43d8
process[rosout-1]: started with pid [8118]
started core service [/rosout]
process[iexpress/iexpress_rs_driver/ns1/rslidar_node-2]: started with pid [8124]
process[iexpress/iexpress_rs_driver/ns1/cloud_node-3]: started with pid [8126]
[ INFO] [1599808162.916651328]: [driver] publishing 75 packets per scan
[ INFO] [1599808162.919925052]: [driver] Cut at specific angle feature activated. Cutting rslidar points always at 0 degree.
[ INFO] [1599808162.924817734]: [cloud][rawdata] lidar model: RS16
[ INFO] [1599808162.924915954]: [driver][input] accepting packets from IP address: 192.168.1.201
[ INFO] [1599808162.924942136]: [driver][socket] Opening UDP socket: port 9966
[ INFO] [1599808162.925481408]: [cloud][rawdata] start and end angle feature activated.
[ INFO] [1599808162.925511067]: [cloud][rawdata] start_angle: 0 end_angle: 360 angle_flag: 1
[ INFO] [1599808162.925645744]: [driver][input] accepting packets from IP address: 192.168.1.201
[ INFO] [1599808162.925661783]: [driver][socket] Opening UDP socket: port 8877
[ INFO] [1599808162.926878507]: [cloud][rawdata] distance threshlod, max: 200 m, min: 0.4 m
[ INFO] [1599808162.928275594]: [cloud][rawdata] initialize resolution type: 0.5 cm, intensity mode: 1
[ INFO] [1599808162.938996878]: [cloud][rawdata] lidar model: RS16
[ INFO] [1599808162.939018893]: [cloud][rawdata] start and end angle feature activated.
[ INFO] [1599808162.939032930]: [cloud][rawdata] start_angle: 0 end_angle: 360 angle_flag: 1
[ INFO] [1599808162.939792536]: [cloud][rawdata] distance threshlod, max: 200 m, min: 0.4 m
[ INFO] [1599808162.940519816]: [cloud][rawdata] initialize resolution type: 0.5 cm, intensity mode: 1
[ INFO] [1599808163.256956783]: [cloud][rawdata] curves data is wrote in difop packet!
[ INFO] [1599808163.257098911]: [cloud][rawdata] angle data is wrote in difop packet!
[ INFO] [1599808163.257425032]: [cloud][rawdata] distance resolution is: 1 cm, intensity mode is: Mode 2
[ INFO] [1599808163.257508370]: [cloud][rawdata] lidar only support single return wave!

启动 rviz ,配置 Fixed Frame 的值为.launch启动文件中的frame_id对应的值 i_scan

<param name="frame_id" value="i_scan"/>

在点击Add,添加 pointcloud2,添加Topic,下拉添加消息:
在这里插入图片描述图2-18 rviz配置情况如上图所示

  1. 如上步所示,修改绍兴车(有2颗雷达)的.launch文件并启动。
roslaunch rslidar_pointcloud_new two_lidar.launch 

在这里插入图片描述图2-19 launch文件启动信息

打开rviz,配置参数,显示雷达点云:
在这里插入图片描述图2-20 显示1号雷达信息

3.3 配置底盘转轮

3.3.1 配置底盘参数

首先,启动底盘的启动文件,查看是否能够正常运行:

roslaunch iexpress_omni_4_driver iexpress_omni_4_driver.launch

在这里插入图片描述图2-21 底盘启动文件显示信息

使用 rostopic list

在这里插入图片描述图2-22 当前订阅信息中包含了底盘的信息wheel_odom

使用rostopic echo /iexpress/iexpress_omni_4_driver/wheel_odom,打印轮式里程计的信息:
在这里插入图片描述图2-23 打印轮式里程计的信息

由于目前小车处于静止状态,所以轮式里程计的信息为零。

如果能够启动,配置底盘参数:

  • 查阅iexpress_omni_4_driver.launch,确定使用的参数文件是~/sx_ws/src/iexpress_omni_4_driver/config/vehicle_params_lof5000_001.yaml
    在这里插入图片描述图2-19 该启动文件中使用的参数文件vehicle_params_lof5000_001.yaml

  • 配置该参数文件中的信息:

    • port_name:端口名称,设置为/dev/usbDIPAN
    • encoder_resolution:编码率=电机转一圈的脉冲数*减速比
    • diagonal:底盘对角线长/2
    • calibrate_y、x、w:里程计标定数据,初始化为1。在车子启动后,往x,y轴各运行一段距离、车子转180度,计算“实际走的距离/里程计距离” 的比值,用来更新里程计标定数据。
    • wheel_diameter_rf、lf、lr、rr:右前轮、左前轮、左后轮、右后轮的直径。

3.3.2 启动底盘launch文件

roslaunch iexpress_omni_4_driver iexpress_omni_4_driver.launch

参考文件

[1] 绍兴车环境编译(笔记本模拟编译)
[2] 软件RSView中help选项下的产品说明文件。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值