Bunker_mini_dev-两款激光雷达驱动,AVIA和MID-360同时在Jeston Orin NX上工作

AVIA和MID-360同时在Jeston Orin NX上工作

由于大疆的两款激光雷达AVIA和MID-360分别支持SDK和SDK2,所以本质上两款雷达不能直接采用同一方式进行连接使用,也不能运行在同一个ROS环境中。我们可以通过Docker来创建一个支持SDK2的ROS环境运行MID-360,这样既不影响AVIA工作使用,同时还可以接收到MID-360的数据。


Jeston Orin NX环境配置

Orin NX出场自带Ubuntu2004,所以先装一个Noetic,然后拉一个Docker的Humble镜像,推荐用小鱼一键安装,小鱼一键安装已经适配了ARM架构的ROS环境,同时还可以安装任意版本的Docker。

wget http://fishros.com/install -O fishros && . fishros

按照提示输入数字即可。
安装Noetic不在此赘述,下面讲一下Humble容器创建的注意事项。
因为大疆的两款激光雷达默认的通信网段为192.168.1.xx,所以首先要保证通过路由器来搭建一个192.168.1.的局域网,子网掩码:255.255.255.0,默认网关192.168.1.1,我们的宿主机,也就是Orin NX中控机接入到局域网中,会分配一个同网段的IP,如192.168.1.6。Docker创建大致有三种网络模式:Bridge会分配一个跟宿主机不同网段的IP,Host的IP地址网关和宿主机的一样,None不会配置任何IP和网关。所以Host是我们想要的模式,即Humble容器和宿主机相同IP,但是Docker默认创建Bridge模式,需要我们手动改为Host模式。
首先拉取镜像,可以先用一键安装安装一个,然后拉取完镜像再安装一个,下图以melodic为例
请添加图片描述

>>humble_1
收到名字humble_1
Run CMD Task:[users]
[-]Result:success                           

Run CMD Task:[sudo docker run -dit --name=humble_1 -v /home/xc:/home/xc -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri/renderD128 -v /dev/dri:/dev/dri --device=/dev/snd -e DISPLAY=unix$DISPLAY -w /home/xc  xxx/humble_1]
3ff9aa31e3332c41d1b56da33ba130a452e79f67bbbb586bfde1f9b5019e03de
Run CMD Task:[docker exec -it humble_1 /bin/bash -c "echo -e '
source /opt/ros/humble/setup.bash' >> ~/.bashrc" ]
Run CMD Task:[xhost +local:]
non-network local connections being added to access control list
================================5.生成命令======================================
Run CMD Task:[users]
[-]Result:success                           

创建文件:/home/xc/.fishros/bin/humble_1
Run CMD Task:[sudo chmod 777 /home/xc/.fishros/bin/humble_1]
================================6.生成使用工具======================================
RUN Choose Task:[请输入括号内的数字]
为方便后续使用容器,请选择使用方式,若不知道怎么选,推荐套餐1,若不需要则可以选退出:
[1]:套餐1:VsCode+插件(本地使用推荐)
[2]:套餐2:SSH-Service(远程使用推荐)
[0]:quit
请输入[]内的数字以选择:0

这个是小鱼一键安装每部的命令,下面我们自己修改,按照上述步骤再安装host网络格式

# 添加 --net=host 同时也要输入名字
sudo docker run -dit --name=humble_2 -v /home/xc:/home/xc -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri/renderD128 -v /dev/dri:/dev/dri --device=/dev/snd --net=host -e DISPLAY=unix$DISPLAY -w /home/xc  xxx/humble # 需要修改

docker exec -it humble_2 /bin/bash -c "echo -e '
source /opt/ros/humble/setup.bash' >> ~/.bashrc"

xhost +local:

# 创建失败,稍后通过vscode创建
sudo chmod 777 /home/xc/.fishros/bin/humble

配置作用

sudo docker run: 启动一个新的Docker容器。

-dit: 分配一个伪终端,并在后台运行容器(detached mode)。

--name=humble_2: 为容器指定一个名称("humble_2")。

-v /home/xc:/home/xc: 将主机系统的 /home/xc 目录挂载到容器的 /home/xc 目录。

-v /tmp/.X11-unix:/tmp/.X11-unix: 将X服务器的Unix域套接字挂载到容器,使得容器内的应用程序能够显示到主机的X服务器。

--device=/dev/dri/renderD128: 将主机的渲染设备/dev/dri/renderD128 挂载到容器,可能用于图形渲染。# 如有报错,直接删掉

-v /dev/dri:/dev/dri: 将主机系统的 /dev/dri 目录挂载到容器的 /dev/dri 目录,用于访问Direct Rendering Infrastructure(DRI)设备。

--device=/dev/snd: 将主机的声音设备 /dev/snd 挂载到容器,以便容器内的应用可以访问声音设备。

--net=host: 使用主机网络命名空间,容器将共享主机的网络栈。

-e DISPLAY=unix$DISPLAY: 设置容器内的 DISPLAY 环境变量,以便X客户端能够连接到X服务器。

-w /home/xc: 设置容器的工作目录为 /home/xc。

xxx/humble: 指定要运行的Docker镜像,这是一个ROS Humble版本。

两款激光雷达SDK和Driver安装

驱动安装前先把所有激光雷达网口接入到交换机中

AVIA安装

下载地址

https://github.com/Livox-SDK/Livox-SDK

下载到任意文件夹下

cd Livox-SDK
cd build
cmake ..
make
sudo make install

下载地址

https://github.com/Livox-SDK/livox_ros_driver/

下载到工作空间文件(ws_livox)夹下

cd ws_livox
catkin_make

切换到工作空间/ws_livox

source devel/setup.bash 
roslaunch livox_ros_driver livox_lidar_rviz.launch

更改style如下图
请添加图片描述


MID-360安装

配置vscode
安装插件 Dev Containsrs
请添加图片描述

可以看到安装的Docker
请添加图片描述

打开vscode没有找到安装的docker,需要到主用户目录下打开vscode
点击通过命令行安装的docker后,找到.fishros/bin/humble
复制其他文件,然后更改为对应docker名字(文件名和内容都要改)
配置好后点击进入对应的容器
下载地址

https://github.com/Livox-SDK/Livox-SDK2

下载到Download文件夹下

cd Livox-SDK2
mkdir build && cd build
cmake ..
make
sudo make install

需要修改Livox-SDK2/samples/livox_lidar_quick_start/mid360_config.json中:

"host_ip"        : "192.168.1.50",

下载地址

https://github.com/Livox-SDK/livox_ros_driver2

下载到工作空间文件夹下

source /opt/ros/humble/setup.sh
./build.sh humble

修改ws_livox/src/livox_ros_driver2/config/MID360_config.json中主机IP cmd_data_ip和雷达IP,其中雷达IP 192.168.1.1XX,后两位为雷达S/N码(可以在雷达包装盒和雷达下面找到)的最后两位

"cmd_data_ip" : "192.168.1.50",

"ip" : "192.168.1.146",

修改后重新编译一次
如果遇到类似的报错:what(): Could not load library dlopen error: liblivox_lidar_sdk_shared.so: cannot open shared object file: No such file or directory, at /tmp/binarydeb/ros-galactic-rcutils-4.0.4/src/shared_library.c:99,说明缺少Livox SDK2库,已安装但不可用,因为不在 LD_LIBRARY_PATH 环境变量中。所以将 /usr/local/lib 目录添加到变量.bashrc中:

sudo gedit ~/.bashrc
# 添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

切换到工作空间/livox_ws

source install/setup.bash 
ros2 launch livox_ros_driver2 rviz_MID360_launch.py 

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值