安装驱动
$ cd ~/catkin_ws/src
$ git clone https://github.com/agilexrobotics/ugv_sdk.git
$ git clone https://github.com/agilexrobotics/scout_ros.git
$ cd ..
$ catkin_make
安装
● 使能 gs_usb 内核模块
● 设置 500k 波特率和使能 can-to-usb 适配器
sudo modprobe gs_usb
sudo ip link set can0 up type can bitrate 500000
sudo apt install can-utils
roslaunch scout_bringup scout_robot_base.launch
启动成功后 是这样
RTNETLINK answers: Device or resource busy
Reading package lists... Done
Building dependency tree
Reading state information... Done
can-utils is already the newest version (2018.02.0-1).
0 upgraded, 0 newly installed, 0 to remove and 50 not upgraded.
... logging to /home/lg/.ros/log/6a676b6a-f5ee-11ef-a0ac-24ec992f7fe4/roslaunch-lg-scout-3667.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://lg-scout:41271/SUMMARY
========PARAMETERS* /rosdistro: melodic* /rosversion: 1.14.13* /scout_base_node/base_frame: base_link* /scout_base_node/is_scout_mini: False* /scout_base_node/is_scout_omni: False* /scout_base_node/odom_frame: odom* /scout_base_node/odom_topic_name: odom* /scout_base_node/port_name: can0* /scout_base_node/pub_tf: False* /scout_base_node/simulated_robot: FalseNODES/scout_base_node (scout_base/scout_base_node)auto-starting new master
process[master]: started with pid [3677]
ROS_MASTER_URI=http://localhost:11311setting /run_id to 6a676b6a-f5ee-11ef-a0ac-24ec992f7fe4
process[rosout-1]: started with pid [3688]
started core service [/rosout]
process[scout_base_node-2]: started with pid [3691]
[ INFO] [1740758981.233051051]: Working as scout mini: 0
[ INFO] [1740758981.233888549]: Working as scout omni: 0
Start listening to port: can0
Detected protocol: AGX_V2
Start listening to port: can0
[ INFO] [1740758981.297304150]: Using CAN bus to talk with the robot
发指令前进
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: -1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
这样小车就动起来了
还可以用python 发指令
#!/usr/bin/env python3
import rospy
from geometry_msgs.msg import Twistrospy.init_node('velocity_commander')
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)rate = rospy.Rate(10) # 10Hz
while not rospy.is_shutdown():cmd = Twist()cmd.linear.x = 3 # 前进速度 0.2 m/scmd.angular.z = 0 # 旋转角速度 0.5 rad/spub.publish(cmd)rate.sleep()
还可以 用键盘控制
source ./devel/setup.sh
roslaunch scout_bringup scout_teleop_keyboard.launch
.. logging to /home/lg/.ros/log/6a676b6a-f5ee-11ef-a0ac-24ec992f7fe4/roslaunch-lg-scout-3917.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://lg-scout:40907/SUMMARY
========PARAMETERS* /rosdistro: melodic* /rosversion: 1.14.13* /teleop_keybord/repeat_rate: 50.0NODES/teleop_keybord (teleop_twist_keyboard/teleop_twist_keyboard.py)ROS_MASTER_URI=http://localhost:11311process[teleop_keybord-1]: started with pid [3932]Reading from the keyboard and Publishing to Twist!
---------------------------
Moving around:u i oj k lm , .For Holonomic mode (strafing), hold down the shift key:
---------------------------U I OJ K LM < >t : up (+z)
b : down (-z)anything else : stopq/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%CTRL-C to quitcurrently: speed 0.5 turn 1.0