70 lines
3.5 KiB
Bash
Executable File
70 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# set environment, clear screen and logfiles
|
|
if [ ! -d ~/.ros/log ] ; then mkdir -p ~/.ros/log ; fi
|
|
printf "\033c"
|
|
source ../../../../install/setup.bash
|
|
echo -e "\n# run.bash: Stopping rosmaster and all rosnodes...\n# rosnode kill -a ; sleep 5 ; killall rosmaster ; sleep 5"
|
|
rosnode kill -a ; sleep 5 ; killall rosmaster ; sleep 5
|
|
rm -rf ~/.ros/log/*
|
|
|
|
# initialize can net device, can0 by peak can adapter
|
|
# sudo ip link set can0 up type can bitrate 125000
|
|
NUM_BITRATE_125000=$(ip -details link show can0 | grep "bitrate 125000" | wc -l)
|
|
if [ "$NUM_BITRATE_125000" = "0" ] ; then
|
|
echo -e "# run sick_line_guidance:\n# sudo ip link set can0 up type can bitrate 125000"
|
|
sudo ip link set can0 up type can bitrate 125000
|
|
fi
|
|
echo -e "# run sick_line_guidance:\n# ip -details link show can0"
|
|
ip -details link show can0
|
|
|
|
# check can net device by sending 000#0x820A (can command reset communication to device 0x0A), should be answered by 70A#00 (boot message from device 0x0A)
|
|
# for ((n=0;n<=2;n++)) ; do
|
|
# candump -ta -n 2 can0 &
|
|
# cansend can0 000#820A
|
|
# sleep 1
|
|
# done
|
|
|
|
# Start OLS20 simulation
|
|
# ./runsimu.bash
|
|
|
|
# start can logging
|
|
# printf "\033c" ; candump -ta can0 2>&1 | tee ~/.ros/log/candump.log
|
|
candump -ta can0 2>&1 | tee ~/.ros/log/candump.log &
|
|
|
|
# get/set values from object directory with canopen_chain_node service, f.e. Object 2001sub5 (sensorFlipped, UINT8, defaultvalue: 0x01)
|
|
# rosservice call /driver/get_object "{node: 'node1', object: '2001sub5', cached: false}"
|
|
# rosservice call /driver/set_object "{node: 'node1', object: '2001sub5', value: '0x01', cached: false}"
|
|
|
|
# Start ros driver canopen_chain_node, sick_line_guidance_node and sick_line_guidance_cloud_publisher
|
|
|
|
# echo -e "\n# run sick_line_guidance:\n# roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_ols10.yaml\n"
|
|
# roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_ols10.yaml 2>&1 | tee ~/.ros/log/sick_line_guidance_ols10.log # start OLS10 driver
|
|
|
|
echo -e "\n# run sick_line_guidance:\n# roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_ols20.yaml\n"
|
|
roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_ols20.yaml 2>&1 | tee ~/.ros/log/sick_line_guidance_ols20.log # start OLS20 driver
|
|
|
|
# echo -e "\n# run sick_line_guidance:\n# roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_mls.yaml\n"
|
|
# roslaunch -v --screen sick_line_guidance sick_line_guidance.launch yaml:=sick_line_guidance_mls.yaml 2>&1 | tee ~/.ros/log/sick_line_guidance_mls.log # start MLS driver
|
|
|
|
# read some object indices (f.e. 1001=ErrorRegister, 1018sub1=VendorID, 1018sub4=SerialNumber)
|
|
# rostopic echo -n 1 /node1_1001 & rostopic echo -n 1 /node1_1018sub1 & rostopic echo -n 1 /node1_1018sub4
|
|
# rosservice call /driver/get_object node1 1001sub false
|
|
# rosservice call /driver/get_object node1 1018sub1 false
|
|
# rosservice call /driver/get_object node1 1018sub4 false
|
|
|
|
# Check errors and warnings in ros logfiles
|
|
killall candump
|
|
grep "\[ WARN\]" ~/.ros/log/*.log ~/.ros/log/*/ros*.log ~/.ros/log/*/sick*.log >> ~/.ros/log/ros_log_warnings.txt
|
|
grep "\[ERROR\]" ~/.ros/log/*.log ~/.ros/log/*/ros*.log ~/.ros/log/*/sick*.log >> ~/.ros/log/ros_log_errors.txt
|
|
cat ~/.ros/log/ros_log_warnings.txt
|
|
cat ~/.ros/log/ros_log_errors.txt
|
|
|
|
# Zip all logfiles
|
|
mkdir ./tmp
|
|
cp -rf ~/.ros/log ./tmp
|
|
now=$(date +"%Y%m%d_%H%M%S")
|
|
tar -cvzf ./$now-ros-logfiles.tgz ./tmp/log
|
|
rm -rf ./tmp
|
|
|