# lxbot **Repository Path**: linuxfly/lxbot ## Basic Information - **Project Name**: lxbot - **Description**: lxbot project - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-03-17 - **Last Updated**: 2024-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 0.机器人硬件清单 - 底盘(akm结构,wheeltec) - 电机(???) - 电机编码器(???) - 电机驱动器(???) - 下位机(stm32,wheeltec) - 24v电池(???ah) - 24->12v电压转换器(??A,) - 24->19v电压转换器 - 上位机(lx03) - 2d激光雷达(思岚rplidar a2) - 水平摄像机(???) - 3d固态激光雷达(觅道-mid-70) - 深度摄像机(intel relsense d435i) - 遥控器(罗技f710) ### 1.上位机配置与远程连接 - 系统:ubuntu 22.04 - 机器名:lx03 - 用户名:ailab - 密码:1 - 插入19V电源(不能使用12V) - 连接显示器,键盘鼠标 - 连接wifi网络 - 浏览器和终端中查看网络是否联通 无密码vscode远程连接lx03方法 ```bash #拷贝远程私钥到本机(linux) mkdir -p ${HOME}/.ssh/ scp -P 22 -o "StrictHostKeyChecking no" ailab@lx03.local:/home/ailab/.ssh/id_rsa ~/.ssh/id_rsa_lx03.key #拷贝远程私钥到本机(windows) scp -P 22 -o "StrictHostKeyChecking no" ailab@lx03.local:/home/ailab/.ssh/id_rsa %HOMEPATH%/.ssh/id_rsa_lx03.key #vscode安装remote ssh插件,配置中填写下面内容 Host lx03.local HostName lx03.local User ailab port 22 ForwardX11 yes ForwardX11Trusted yes ForwardAgent yes IdentityFile ~/.ssh/id_rsa_lx03.key ``` ### 2.设备号固定 ```bash #下载机器人功能包 git clone https://gitee.com/linuxfly/lxbot.git ~/lxbot #编辑并确认udev设置 code ~/lxbot/set_udev_rules.sh #执行并重启 sudo ~/lxbot/./set_udev_rules.sh ls /etc/udev/rules.d/ sudo reboot #观察设备号是否固定 ls -l /dev/wheeltec_controller #下位机 ls -l /dev/rplidar_a2 #2d激光雷达 ls -l /dev/robotis_u2d2 #舵机控制器 ls -l /dev/xxx #3D固态激光雷达 ls -l /dev/xxx #深度相机 ls -l /dev/xxx #usb摄像头 ``` ### 3.开发(镜像)配置与远程连接 ```bash #下载机器人功能包 git clone https://gitee.com/linuxfly/lxbot.git ~/lxbot #编译镜像 ~/lxbot/dockerfile/./build.sh ros-noetic #修改宿主机hosts文件,添加lxbot主机名 if [ "$(cat /etc/hosts | grep lxbot)" == "" ]; then sudo /bin/bash -c "echo 127.0.1.1 lxbot >> /etc/hosts" fi #运行镜像 python3 ~/lxbot/dockerfile/run.py ros-noetic #远程开发笔记本配置提示信息 python3 ~/lxbot/dockerfile/run.py ros-noetic -ou #vscode安装remote ssh插件,根据上面的提示信息配置连接 #vscode 连接容器后测试编译 cd ~/catkin_ws catkin_make ``` ### 4.配置共享目录 ```bash #配置/etc/samba/smb.conf(一般无需修改) sudo vim /etc/samba/smb.conf [share] comment = lx03 share path = /home/ailab/share public = yes writable = yes browsable = yes #添加用户 sudo smbpasswd -a ailab #删除用户 sudo smbpasswd -x ailab #查看已有用户 sudo pdbedit -L #重启samba服务 sudo service smbd restart #windows访问(需要开启smb客户端服务),打开文件浏览器,地址栏输入 \\lx03.local\share #linux中访问,打开文件浏览器,地址栏输入 smb://lx03.local/share ``` ### 5.使用ftp传输文件(传输协议选择sftp,端口号10022,用户名root,密码1) ```bash #windows下载安装,https://filezilla-project.org #linux安装运行 sudo apt install filezilla filezilla ``` ### 测试激光雷达,rviz显示机器人和激光遮挡图像 ```bash #修改设备号 sed -i 's/ttyUSB0/rplidar_a2/g' /opt/ros/noetic/share/rplidar_ros/launch/rplidar_a2m7.launch #运行2d激光雷达节点 roslaunch rplidar_ros rplidar_a2m7.launch #rplidar a2 坐标系示意图 #https://raw.githubusercontent.com/Slamtec/rplidar_ros/master/rplidar_A2.png #查看节点信息 rosnode info /rplidarNode # Publications: # /scan [sensor_msgs/LaserScan] #查看激光雷达数据 rostopic echo -n1 /scan #查看激光雷达/scan数据类型 rosmsg show sensor_msgs/LaserScan # std_msgs/Header header # uint32 seq # time stamp # string frame_id # float32 angle_min # float32 angle_max # float32 angle_increment # float32 time_increment # float32 scan_time # float32 range_min # float32 range_max # float32[] ranges # float32[] intensities ``` ### 测试姿态传感器,移动机器人,在rviz中显示姿态和运动轨迹 ```bash roslaunch fdilink_ahrs ahrs_data.launch ``` ### 测试摄像头,rviz中看到摄像头场景 ```bash roslaunch xxxxxx ``` ### 开启机器人小车节点 ```bash #麦克纳姆轮结构小车 roslaunch turn_on_wheeltec_robot mytest.launch car_mode:=senior_mec_bs #阿克曼结构小车 roslaunch turn_on_wheeltec_robot mytest.launch car_mode:=senior_akm rosrun rqt_tf_tree rqt_tf_tree #查看tf树 rosnode list #查看所有开启的节点 rosnode info /wheeltec_robot #查看机器人节点信息 rosnode info /robot_pose_ekf #查看使用卡尔曼滤波生成odom_combined(TF)的节点 rviz #打开rviz,fixed frame中设置为/odom_combined,添加tf,移动机器人观察箭头方向变化 ``` ### 测试键盘控制小车 ```bash rosrun teleop_twist_keyboard teleop_twist_keyboard.py _speed:=0.9 _turn:=0.8 cmd_vel:=cmd_vel ``` ### 使用罗技f710手柄控制小车 ```bash roslaunch teleop_twist_joy teleop.launch joy_dev:="/dev/input/js_f710" config_filepath:="/root/catkin_ws/src/lxbot/f710.yaml" #订阅/joy用于设置f710.yaml rostopic echo /joy ``` ### 摄像头寻线 ```bash roslaunch xxxxxx ``` ### 摄像头识别二维码,并播报 ```bash roslaunch xxxxxx ``` ### 摄像头yolo识别物品,并播报 ```bash roslaunch xxxxxx ``` ### 2d雷达slam,遥控机器人行走,建图并实时保存地图 ```bash roslaunch xxxxxx ``` ### 2d雷达加载地图,定位后rviz鼠标设定目标导航 ```bash roslaunch xxxxxx ``` ### 2d雷达加载地图,定位后在程序中设定一个地图点导航 ```bash roslaunch xxxxxx ``` ### 2d雷达加载地图,定位后进行贴边行走 ```bash roslaunch xxxxxx ``` ### 2d雷达slam行走,自动导航到未探索区域 ```bash roslaunch xxxxxx ``` ### 3d固态雷达相关操作 ```bash roslaunch xxxxxx ```