1. 基本信息
Ubuntu 18.04.5.LTS
账号:root
密码:oelinux123
开机方式:长按power键大概6,7秒左右,电源插口旁的绿灯会亮
2. 连接Wi-Fi
查看无线网卡设备名称(默认是 wlan0
)
ifconfig
确认无线网卡是开启状态,输入以下命令会显示出当前可搜索到的Wi-Fi列表,证明无线网卡正常
iw dev wlan0 scan
编辑Wi-Fi配置文件wpa_supplicant.conf
(https://thundercomm.s3.ap-northeast-1.amazonaws.com/shop/doc/RB5/wpa_supplicant.conf)
cd /data/misc/wifi/ vim wpa_supplicant.conf
更改ssid
(Wi-Fi名称)和key
(Wi-Fi密码),保存
# Only WPA-PSK is used. Any valid cipher combination is accepted. ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ #Open # ssid="example open network" # key_mgmt=NONE #WPA-PSK ssid="MaRS_office" #proto=WPA key_mgmt=WPA-PSK pairwise=TKIP CCMP group=TKIP CCMP psk="mars6666" #WEP # ssid="example wep network" # key_mgmt=NONE # wep_key0="abcde" # wep_key1=0102030405 # wep_tx_keyidx=0 } wowlan_triggers=magic_pkt
重启RB5,如果配置文件生效后此时应该已经连接wifi
reboot
3. 安装Ubuntu Desktop
3.1 固件版本更新
以下刷固件步骤不需要,跳过
{
自带的Ubuntu18.04只有命令行,需要自行安装桌面版,指导文件见附件
首先要刷特定固件,固件版本:
FlatBuild_TurboX-RB5_xx.xx_LU1.0.R.perf.Post-CS2.r003004
但是附带的User Manual里并没有该版本,改用:
FlatBuild_TurboX-RB5_xx.xx_LU1.0.l.perf.Post-CS2.r003004
此处需要用个人PC进行adb固件安装
Step.1 ADB环境配置
1、在个人的PC上,安装ADB TOOLS
sudo apt-get install android-tools-adb sudo apt-get install android-tools-fastboot
之后,进行USB driver安装与设定
cd /etc/udev/rules.d/ sudo touch 99-android.rules sudo chmod 777 /etc/udev/rules.d/99-android.rules vim 99-android.rules
输入:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0777", GROUP="adm" SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0777", GROUP="adm"
保存
2、重启udev service
sudo chmod a+r /etc/udev/rules.d/99-android.rules sudo service udev restart
3、用usb连接电脑与RB5,上电开机,等待一段时间后电脑端输入
adb devices
显示出设备,证明adb连接成功;
Step.2 固件安装
1、下载固件
2、安装固件,首先下载脚本
https://thundercomm.s3.ap-northeast-1.amazonaws.com/shop/doc/common/turbox_flash_flat.sh
3、将脚本文件放入解压后的文件夹内(路径:<folder name of image package>),并给权限
cp turbox_flash_flat.sh <folder name of image package> cd <folder name of image package> chmod +x turbox_flash_flat.sh
4、 将RB5进入9008 Mode
-
关机拔掉电源,拔掉usb;
-
插上电源;
-
按住USB BOOT键
-
再按电源键持续3s左右
-
连接type-c到电脑
-
检查是否进入了9008 Mode
}
以上步骤不需要!
3.2 安装Gnome
1、依次运行以下命令:
apt-get remove weston* apt-get remove wayland* apt-get install xorg apt-get install gnome apt-get install lightdm
其中,安装xorg时均选择English US
,安装lightdm后选择gdm3
2、相关配置文件更改
-
/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
# 添加以下两行 greeter-show-manual-login=true all-guest=false
-
/etc/pam.d and modify files gdm-autologin
# 将此行注释掉 auth required pam_success_if.so user!=root quiet_success
-
/etc/pam.d and modify files gdm-passwd
# 将此行注释掉 auth required pam_success_if.so user!=root quiet_success
-
/root/.profile
# 在mesg n前面添加tty -s && tty -s && mesg n || tzsrue
3、 设置GUI为默认启动,运行命令:
systemctl set-default graphical.target
PS: 如果日后要取消GUI(暂未验证可行性)
systemctl set-default multi-user.target
4、重启进入GUI登陆界面,输入密码时选择GNOME,否则会一直循环输入账号密码
5、该GUI目前已知的可能出现的一些问题及解决办法:
-
无法调出终端:
# 解决方法: # 浏览器搜索terminator的deb安装包下载后安装即可掉出terminator # 下载地址 http://archive.ubuntu.com/ubuntu/pool/universe/t/terminator/terminator_1.91-1_all.deb
-
该GUI下Wi-Fi无法自动连接:
# 解决方法: # 重新按照命令行阶段配置wifi的步骤配置了wifi,之后便可开机自动连上wifi # (而且不知道为何突然正常,自带了wifi记忆功能,断电重启后自动连接了上次手动设置的wifi)
-
长时间待机休眠后无法正常唤醒,会灰屏;
暂无解决方案
-
不能使用VS Code;
-
无法调出中文/拼音输入法;
-
Rviz无法使用
4. 基本环境及APP配置
4.1 Terminator
deb安装即可;
http://archive.ubuntu.com/ubuntu/pool/universe/t/terminator/terminator_1.91-1_all.deb
4.2 ROS-Melodic
sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 apt-get update apt-get install ros-melodic-desktop-full rosdep init rosdep update echo "source /opt/ros/melodic/setup.bash">> ~/.bashrc source ~/.bashrc apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential #测试,开四个terminator分别运行 roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key rviz
4.3 PCL和Eigen库
4.3.1 安装PCL
apt-get install libpcl-dev
测试PCL库是否成功,创建下面两个文件
pcl_test.cpp
//pcl_test.cpp #include <iostream> #include <pcl/common/common_headers.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h> #include <pcl/visualization/cloud_viewer.h> #include <pcl/console/parse.h> int main(int argc, char **argv) { std::cout << "Test PCL !!!" << std::endl; pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>); uint8_t r(255), g(15), b(15); for (float z(-1.0); z <= 1.0; z += 0.05) { for (float angle(0.0); angle <= 360.0; angle += 5.0) { pcl::PointXYZRGB point; point.x = 0.5 * cosf (pcl::deg2rad(angle)); point.y = sinf (pcl::deg2rad(angle)); point.z = z; uint32_t rgb = (static_cast<uint32_t>(r) << 16 | static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b)); point.rgb = *reinterpret_cast<float*>(&rgb); point_cloud_ptr->points.push_back (point); } if (z < 0.0) { r -= 12; g += 12; } else { g -= 12; b += 12; } } point_cloud_ptr->width = (int) point_cloud_ptr->points.size (); point_cloud_ptr->height = 1; pcl::visualization::CloudViewer viewer ("test"); viewer.showCloud(point_cloud_ptr); while (!viewer.wasStopped()){ }; return 0; }
MakeLists.txt
# CMakeLists.txt cmake_minimum_required(VERSION 2.6) project(pcl_test) find_package(PCL 1.7 REQUIRED) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) # 问题3.2(can not find libvtkproj4.so)的解决方案 list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4") add_executable(pcl_test pcl_test.cpp) target_link_libraries (pcl_test ${PCL_LIBRARIES}) install(TARGETS pcl_test RUNTIME DESTINATION bin)
将以上两个文件放在一个文件夹下,运行
cmake . make ./pcl_test
出现样例点云
4.3.2 安装eigen
sudo apt-get install libeigen3-dev
4.4 LIVOX_SDK
git clone https://github.com/Livox-SDK/Livox-SDK.git cd Livox-SDK cd build && cmake .. make sudo make install
4.5 LIVOX_ROS_Driver
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src # 需更改为修改过的livox_ros_driver包,替换src下的文件 cd ws_livox catkin_make echo "source ~/ws_livox/devel/setup.bash" >> ~/.bashrc source devel/setup.bash
4.6 FAST-LIO
cd ~/ws_livox/src git clone https://github.com/hku-mars/FAST_LIO.git cd FAST_LIO git submodule update --init # 这步如果报错需要配置一下git ssh cd ../.. catkin_make source devel/setup.bash
5. 连接LiDAR与相机
5.1 静态IP更改
将avia以太网口插入rb5网口,查看ifconfig
,默认以太网口名为eth0,更改ip地址
ifconfig # 查看网口编号 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 ifconfig # 确认更改成功
5.2 avia测试
运行livox_ros_driver,成功运行会出现绿色提示
roslaunch livox_ros_driver livox_lidar_msg.launch
查看rostopic
,会显示
livox_lidar livox_imu
运行FAST_LIO
roslaunch fast_lio mapping_avia.launch #如若不启动RVIZ: roslaunch fast_lio mapping_avia.launch rviz:=0
5.3 Camera驱动安装
先去官网安装SDK,机器视觉工业相机客户端MVS V2.1.0(Linux)
下载完成后解压.zip,安装其中aarch64的tar.gz
tar -zxvf XXXXXX.tar.gz #进入解压后的带有install文档的文件夹内 chmod +x setup.bash ./setup.bash
安装完成后会显示Install Completed
,可进入/opt/MVS/bin
中打开MVS,GUI界面显示正常且连接相机后可读图
之后编译mvs_ros_driver, https://github.com/xuankuzcr/Handheld_ws/tree/main/src/mvs_ros_pkg ,讲.pkg放入src中并编译,记得source,其中:
# 注意检查CMakeLists里调用lib的路径是/opt/MVS/lib/aarch64 # launch文件: mvs_camera_trigger.launch:带同步信号 mvs_camera.launch:不带同步信号 配置文件: left_camera_trigger.yaml:带同步信号 left_camera.yaml:不带配置文件
编译成功后,运行mvs_camera.launch
roslaunch mvs_ros_pkg mvs_camera.launch # 如若提示没有设定Exposure Time,在yaml里添加: # ExposureTime: 10000 # 如若提示No Data,是rVIZ的原因,重新拔插相机可解,如若还不行,运行命令: # rqt_image_view # 可正常读图即可
5.4 数据采集
# 连接相机及lidar,记得修改lidar静态IP地址; # 两个终端分别运行: roslaunch livox_ros_driver livox_lidar_msg.launch roslaunch mvs_ros_pkg mvs_camera_trigger.launch # rostopic list 查-看topic,确认lidar和相机正常 # record相机原图直接写于存在超出buffer问题,需写入压缩的图片: rosbag record /livox/imu /livox/lidar /left_camera/image/compressed # 查看bag信息 rosbag info XXXX.bag # bag播放 rosbag play XXXX.bag # 使用rqt查看时间戳信息 rqt_bag XXXX.bag