The robot is accessible through SSH from the primary lab router at: $ssh administrator@192.168.0.44 and from the outdoor router at $ssh administrator@192.168.0.44. The password is clearpath. (Sometimes it may change; in case it changes, please log in to 192.168.0.1 and check the IP of cpr-j100-0750)
- First, log in to jackal using ssh. Then, use the following commands:
$ cd /etc/netplan
$ sudo nano 60-wireless.yaml
- There, you can see 2 router information: One for indoor and one for outdoor. Choose the router and password that you need to use and comment the other.
- Command
$ sudo netplan applyto make changes. - Then, the Jackal will be connected with the desired router. After collecting outdoor data, please change it to the indoor router using the same process.
- Connect to the router that the physical Jackal connects
- Check your local IP address, for example, “wlp0s20f3: 192.168.0.138 ”
$ vim ~/.bashrc- Add these codes:
$ export ROS_IP=192.168.0.138
$ export ROS_HOSTNAME=192.168.0.138
$ export ROS_MASTER_URI=http://192.168.0.44:11311
- Command
$ vim /etc/hosts - Put your IP address in the file, for example “192.168.0.138 XXX” and save it.
We have two Hokuyo lidars, a Velodyne, and a Zed camera. These are automatically running. If you $cd /etc/ros/noetic/ros.d, you will see which launch file is automatically running. Here, we have accessories.launch and base.launch.
- We have already set up the ZED camera; see zed_node. You can clone the ZED packages for ROS from here
- To launch the ZED camera
$ cd catkin_ws
$ source devel/setup.bash
$ roslaunch zed_wrapper zed2.launch
$ rosparam get /zed_nodeto see the params.- If you want to subscribe to the node, run this code in Python:
self.image_sub = rospy.Subscriber('/zed_node/rgb/image_rect_color', Image, self.image_callback) - If you want to see the images, you need to
$ rosrun image_view image_view image:=/zed_node/rgb/image_rect_color. Please first download$ sudo apt-get install ros-noetic-image-view
Image height: 360
Image width: 640
distortion_model: plumb_bob
D
[0]: 0.000000
[1]: 0.000000
[2]: 0.000000
[3]: 0.000000
[4]: 0.000000
K = [
[263.799377, 0.000000, 328.877686],
[ 0.000000, 263.799377, 178.553421],
[ 0.000000, 0.000000, 1.000000]
]
R = [
[1.000000, 0.000000, 0.000000],
[0.000000, 1.000000, 0.000000],
[0.000000, 0.000000, 1.000000]
]
P = [
[263.799377, 0.000000, 328.877686, 0.000000],
[ 0.000000, 263.799377, 178.553421, 0.000000],
[ 0.000000, 0.000000, 1.000000, 0.000000]
]
binning_x: 0
binning_y: 0
roi
x_offset: 0
y_offset: 0
height: 0
width: 0
do_rectify: False
- You can clone the packages for ROS from here
- If you see the accessories.launch file, ctrl + F, to type velodyne, you will see the IP address and related launch file.
- We have 2 HOKUYO lidar in jackal. Please check the following for their IP:
<group if="$(eval (arg('lidar_model') == 'ust10') | (arg('lidar_model') == 'utm30'))">
<node pkg="urg_node" name="hokuyo" type="urg_node">
<param name="ip_address" value="$(optenv JACKAL_LASER_HOST 192.168.131.20)" />
<param name="frame_id" value="$(optenv JACKAL_LASER_MOUNT front)_laser" />
<remap from="scan" to="$(optenv JACKAL_LASER_TOPIC front/scan)" />
</node>
</group>
<group if="$(eval (arg('lidar2_model') == 'ust10') | (arg('lidar2_model') == 'utm30'))">
<node pkg="urg_node" name="hokuyo_2" type="urg_node">
<param name="ip_address" value="$(optenv JACKAL_LASER_SECONDARY_HOST 192.168.131.21)" />
<param name="frame_id" value="$(optenv JACKAL_LASER_SECONDARY_MOUNT rear)_laser" />
<remap from="scan" to="$(optenv JACKAL_LASER_SECONDARY_TOPIC rear/scan)" />
</node>
</group>
$cd ~/tutorial, you will see Hokuyo_front and Hokuyo_rear launch file. If you run these two launch files, then you will see the rostopic named/front/scanand/inv/scan
<node pkg="tf" type="static_transform_publisher" name="hokuyo2hokuyo_inv" args="0 0 0 0 0 3.14159 rear_mount hokuyo_inv 10" />
<node name="urg_node" pkg="urg_node" type="urg_node" output="screen">
<param name="ip_address" value="192.168.131.21"/>
<param name="serial_port" value=""/>
<param name="serial_baud" value="115200"/>
<param name="frame_id" value="hokuyo_inv"/>
<param name="calibrate_time" value="true"/>
<param name="publish_intensity" value="false"/>
<param name="publish_multiecho" value="false"/>
<param name="angle_min" value="-1.5707963"/>
<param name="angle_max" value="1.5707963"/>
<remap from="scan" to="front/scan" />
</node>
and
<node pkg="tf" type="static_transform_publisher" name="hokuyo2hokuyo_inv" args="0 0 0 0 0 3.14159 rear_mount hokuyo_inv 10" />
<node name="urg_node_" pkg="urg_node" type="urg_node" output="screen">
<param name="ip_address" value="192.168.131.20"/>
<param name="serial_port" value=""/>
<param name="serial_baud" value="115200"/>
<param name="frame_id" value="hokuyo_inv_"/>
<param name="calibrate_time" value="true"/>
<param name="publish_intensity" value="false"/>
<param name="publish_multiecho" value="false"/>
<param name="angle_min" value="-1.5707963"/>
<param name="angle_max" value="1.5707963"/>
<remap from="scan" to="inv/scan" />
</node>
The gmu04_jackal_description file consists of three components, specifically the LiDAR mounting plate, optics mounting plate, and ZED2 stereo camera. This represents only a partial URDF implementation for the Jackal robot.
For the complete Jackal robot description, please clone the official repository:
git clone https://github.com/jackal/jackal.git --branch <ROS_VERSION>-devel
The complete URDF specification can be found at /jackal_description/urdf/jackal.urdf.xacro. Be sure to copy all corresponding mesh files as well.