initial comit, ported scout_sdk and added hunter support

This commit is contained in:
Ruixiang Du
2020-04-01 11:56:47 +08:00
parent 93a9f134b5
commit 3695365b32
4424 changed files with 635584 additions and 10 deletions

Binary file not shown.

View File

@@ -0,0 +1,23 @@
# Setup CAN on Beaglebone Black
CAN/RS485 Cape: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.68b02e8d02l2uT&id=42637485181&_u=a4mg52ma183
* Install latest Debian image from offical site
* Build and install overlays
```
$ sudo apt install device-tree-compiler
$ git clone https://github.com/beagleboard/bb.org-overlays
$ cd ./bb.org-overlays/
$ ./install.sh
```
* Edit /boot/uEnv.txt
```
# 1. Add the following overlay
###Custom Cape
dtb_overlay=/lib/firmware/BB-CAN1-00A0.dtbo
# 2. Disable auto loading of virutal capes (uncomment the two lines)
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
```
* Reboot the system

View File

@@ -0,0 +1,51 @@
```
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu stretch main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
$ sudo apt-get update
```
```
$ sudo apt-get install -y python-pip python-setuptools python-yaml python-distribute python-docutils python-dateutil python-six
$ sudo pip install rosdep rosinstall_generator wstool rosinstall
$ sudo apt-get install -y \
libconsole-bridge-dev liblz4-dev checkinstall cmake \
python-empy python-nose libbz2-dev \
libboost-test-dev libboost-dev libboost-program-options-dev \
libboost-regex-dev libboost-signals-dev \
libtinyxml-dev libboost-filesystem-dev libxml2-dev \
libgtest-dev libpoco-dev
```
```
$ sudo rosdep init
$ rosdep update
```
```
$ rosinstall_generator ros_comm --rosdistro melodic --deps --tar > melodic-ros_comm.rosinstall
$ wstool init -j1 src melodic-ros_comm.rosinstall
```
```
$ # rosdep install --from-paths src --ignore-src --rosdistro melodic -y
$ sudo ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/melodic -DCMAKE_BUILD_TYPE=Release
```
```
$ source /opt/ros/melodic/setup.bash
```
Additional runtime dependencies:
```
$ sudo apt install -y python-defusedxml python-netifaces
```
```
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
```
Reference:
* [1] https://machinekoder.com/ros-with-debian-stretch-on-the-beaglebone-black-green-blue/
* [2] http://wiki.ros.org/melodic/Installation/Source

2248
docs/misc/can_msg.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
On a Big Endian-System (Solaris on SPARC)
```
$ echo -n I | od -to2 | head -n1 | cut -f2 -d" " | cut -c6
0
```
On a little endian system (Linux on x86)
```
$ echo -n I | od -to2 | head -n1 | cut -f2 -d" " | cut -c6
1
```
The solution above is clever and works great for Linux *86 and Solaris Sparc.
I needed a shell-only (no Perl) solution that also worked on AIX/Power and HPUX/Itanium. Unfortunately the last two don't play nice: AIX reports "6" and HPUX gives an empty line.
Using your solution, I was able to craft something that worked on all these Unix systems:
```
$ echo I | tr -d [:space:] | od -to2 | head -n1 | awk '{print $2}' | cut -c6
```
Regarding the Python solution someone posted, it does not work in Jython because the JVM treats everything as Big. If anyone can get it to work in Jython, please post!
Also, I found this, which explains the endianness of various platforms. Some hardware can operate in either mode depending on what the O/S selects: http://labs.hoffmanlabs.com/node/544
If you're going to use awk this line can be simplified to:
```
echo -n I | od -to2 | awk '{ print substr($2,6,1); exit}'
```
For small Linux boxes that don't have 'od' (say OpenWrt) then try 'hexdump':
```
echo -n I | hexdump -o | awk '{ print substr($2,6,1); exit}'
```
Reference:
* [1] https://serverfault.com/questions/163487/how-to-tell-if-a-linux-system-is-big-endian-or-little-endian
* [2] https://wiki.rdu.im/_pages/Knowledge-Base/Computing/Computing.html

55
docs/misc/commands.md Normal file
View File

@@ -0,0 +1,55 @@
# Commands
## Create gif animation using "imagemagick"
```
$ convert -delay 120 -loop 0 *.png animated.gif
```
## Get statistics of the code base
```
$ sudo apt install cloc
$ cd ~/Workspace/librav/src
$ cloc --exclude-dir=cmake,lcmtypes,third_party .
```
## Create a pair of VSPs
```
$ socat -d -d pty,raw,echo=0 pty,raw,echo=0
```
```
$ cat nmea_test.txt > /dev/pts/6
```
## git subtree
Adding the sub-project as a remote
```
$ git remote add -f [remote-name] [remote-url]
$ git subtree add --prefix [sub-project-name] [remote-name] [branch-name] --squash
```
Update the sub-project
```
$ git fetch [remote-name] [branch-name]
$ git subtree pull --prefix [sub-project-name] [remote-name] [branch-name] --squash
```
Push to remote
```
$ git subtree push --prefix=[sub-project-name] [remote-name] [branch-name]
```
Firmware branch update
```
$ git fetch fw_origin pios_pixcar
$ git subtree pull --prefix firmware fw_origin pios_pixcar --squash
```
## Reference
* [Git subtree: the alternative to Git submodule](https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree)
* [Virtual serial port: socat](https://justcheckingonall.wordpress.com/2009/06/09/howto-vsp-socat/)

View File

@@ -0,0 +1,12 @@
# Enable CAN on Jetson TX2
```
$ sudo modprobe can
$ sudo modprobe mttcan
$ sudo ip link set can0 type can bitrate 500000
$ sudo ip link set up can0
```
Reference:
* https://devtalk.nvidia.com/default/topic/1006762/jetson-tx2/how-can-i-use-can-bus-in-tx2-/post/5166583/#5166583

View File

@@ -0,0 +1 @@
* Disable tests to keep minimal dependency by default

BIN
docs/misc/scout_interface.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

View File

@@ -0,0 +1,7 @@
can1 131 [8] 00 00 00 00 00 00 E4 1E
can1 141 [8] 00 00 00 02 0E 00 E3 3D
can1 151 [8] 01 00 00 EF 00 3C E5 6B
can1 200 [8] 00 00 00 00 00 00 EA F4
can1 201 [8] 00 00 00 00 00 00 EA F5
can1 202 [8] 00 00 00 00 00 00 EA F6
can1 203 [8] 00 00 00 00 00 00 EA F7