Compare commits

..

1 Commits

Author SHA1 Message Date
Oleg Kalachev
4cdf3f8c18 Add custom dictionary for VSCode’s cSpell 2021-06-30 01:02:16 +03:00
12 changed files with 58 additions and 99 deletions

View File

@@ -20,9 +20,6 @@ jobs:
- name: Build - name: Build
run: ./build.sh run: ./build.sh
- name: Upload - name: Upload
if: ${{ github.event_name == 'release' }}
# Not using ready S3 actions, because they either don't run on macOS machines or don't support changing the endpoint # Not using ready S3 actions, because they either don't run on macOS machines or don't support changing the endpoint
run: | run: AWS_ACCESS_KEY_ID=${{secrets.S3_KEY}} AWS_SECRET_ACCESS_KEY=${{secrets.S3_SECRET_KEY}} aws s3 sync . s3://clovervm/ --acl public-read --endpoint-url https://ams3.digitaloceanspaces.com --no-progress
AWS_ACCESS_KEY_ID=${{secrets.S3_KEY}} AWS_SECRET_ACCESS_KEY=${{secrets.S3_SECRET_KEY}} aws s3 sync . s3://clovervm/ --acl public-read --endpoint-url https://ams3.digitaloceanspaces.com --no-progress
echo Uploaded https://clovervm.ams3.digitaloceanspaces.com/$(ls)
working-directory: output-virtualbox-ovf working-directory: output-virtualbox-ovf

21
LICENSE
View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2020 Copter Express Technologies
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -2,7 +2,7 @@
The generator of Clover developer virtual machine image (`.ova` file) to simplify working with Clover and Clover simulation. The generator of Clover developer virtual machine image (`.ova` file) to simplify working with Clover and Clover simulation.
Download the latest image in [Releases](https://github.com/CopterExpress/clover_vm/releases/latest) section. Download the latest image in [Releases](https://github.com/CopterExpress/clover_vm/releases) section.
<img src=https://clover.coex.tech/assets/simulator.jpg width=600> <img src=https://clover.coex.tech/assets/simulator.jpg width=600>

13
assets/configs/clover.txt Normal file
View File

@@ -0,0 +1,13 @@
aruco
leds
rospy
srvs
telem
offboard
hypot
mavros
rosrun
rostime
pymavlink
mavutil
rosmsg

View File

@@ -1,7 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Link
Name=Clover Drone Kit Tools
Comment=Open web based Clover tools
Icon=user-bookmarks
URL=http://localhost/

View File

@@ -1,8 +1,8 @@
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Type=Application Type=Application
Name=Gazebo Clover Name=Gazebo PX4
Comment=Run Clover drone simulation in Gazebo Comment=Fully-featured Gazebo simulation with default PX4 settings
Exec=/bin/bash -c 'source /home/clover/catkin_ws/devel/setup.bash; roslaunch clover_simulation simulator.launch' Exec=/bin/bash -c 'source /home/clover/catkin_ws/devel/setup.bash; roslaunch clover_simulation simulator.launch'
Icon=gazebo Icon=gazebo
Path= Path=

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=jMAVSim + Clover
Comment=A lightweight PX4 simulator + Clover services
Exec=/bin/bash -c 'source /home/clover/catkin_ws/devel/setup.bash; roslaunch clover_simulation simulator.launch type:=jmavsim'
Icon=openjdk-8
Path=
Terminal=true
StartupNotify=false

View File

@@ -3,7 +3,7 @@ Version=1.0
Type=Application Type=Application
Name=jMAVSim Name=jMAVSim
Comment=A lightweight PX4 simulator Comment=A lightweight PX4 simulator
Exec=/bin/bash -c 'cd ~/PX4-Autopilot; make px4_sitl jmavsim' Exec=/bin/bash -c 'cd ~/Firmware; make px4_sitl jmavsim'
Icon=openjdk-8 Icon=openjdk-8
Path= Path=
Terminal=true Terminal=true

View File

@@ -6,7 +6,7 @@ index 8de3079..3fdae02 100644
${CMAKE_SOURCE_DIR}/mavlink/ ${CMAKE_SOURCE_DIR}/mavlink/
../../mavlink/ ../../mavlink/
../mavlink/ ../mavlink/
+ $ENV{HOME}/PX4-Autopilot/mavlink/include + $ENV{HOME}/Firmware/mavlink/include
${CATKIN_DEVEL_PREFIX}/ ${CATKIN_DEVEL_PREFIX}/
) )

View File

@@ -47,3 +47,7 @@ mv ./output-virtualbox-ovf/clover-devel.ova ./output-virtualbox-ovf/${VM_NAME}
ls -l output-virtualbox-ovf ls -l output-virtualbox-ovf
echo "--- All done!" echo "--- All done!"
if [ "${CI}" == "true" ]; then
echo "Deploying to https://clovervm.ams3.digitaloceanspaces.com/${VM_NAME}"
fi

View File

@@ -63,6 +63,11 @@
"source": "{{user `assetsDir`}}/patches", "source": "{{user `assetsDir`}}/patches",
"destination": "/tmp" "destination": "/tmp"
}, },
{
"type": "file",
"source": "{{user `assetsDir`}}/configs",
"destination": "/tmp"
},
{ {
"type": "shell", "type": "shell",
"script": "scripts/install_software.sh", "script": "scripts/install_software.sh",

View File

@@ -31,21 +31,17 @@ rosdep update
# FIXME: PX4 needs pip to be installed # FIXME: PX4 needs pip to be installed
# FIXME: python2 dependencies? # FIXME: python2 dependencies?
echo "--- Downloading PX4 and installing its dependencies" echo "--- Downloading PX4 and installing its dependencies"
git clone --recursive --depth 1 --branch v1.12.0 https://github.com/PX4/PX4-Autopilot.git ${HOME}/PX4-Autopilot git clone --recursive -b v1.11.1-clover https://github.com/CopterExpress/Firmware ${HOME}/Firmware
# PX4 v1.11.1 script will happily run sudo by itself # PX4 v1.11.1 script will happily run sudo by itself
${HOME}/PX4-Autopilot/Tools/setup/ubuntu.sh ${HOME}/Firmware/Tools/setup/ubuntu.sh
# Ubuntu 20.04 no longer sets assistive_technologies, thankfully # Ubuntu 20.04 no longer sets assistive_technologies, thankfully
sudo -E sh -c 'apt-get install -y ant openjdk-11-jdk' # Additional packages for jMAVSim
echo "--- Prebuilding PX4 SITL configuration" echo "--- Prebuilding PX4 SITL configuration"
make -C ${HOME}/PX4-Autopilot px4_sitl make -C ${HOME}/Firmware px4_sitl
echo "--- Patching gazebo plugins for SITL" echo "--- Patching gazebo plugins for SITL"
# cd ${HOME}/PX4-Autopilot/Tools/sitl_gazebo cd ${HOME}/Firmware/Tools/sitl_gazebo
# patch -p1 < /tmp/patches/sitl_gazebo.patch patch -p1 < /tmp/patches/sitl_gazebo.patch
echo 'export SVGA_VGPU10=0' >> ${HOME}/PX4-Autopilot/Tools/setup_gazebo.bash echo 'export SVGA_VGPU10=0' >> ${HOME}/Firmware/Tools/setup_gazebo.bash
echo "source /usr/share/gazebo/setup.sh" >> ~/.bashrc
echo "export SVGA_VGPU10=0" >> ~/.bashrc
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
@@ -63,6 +59,15 @@ code --install-extension ms-vscode.cmake-tools
code --install-extension ms-vscode.cpptools code --install-extension ms-vscode.cpptools
code --install-extension streetsidesoftware.code-spell-checker code --install-extension streetsidesoftware.code-spell-checker
code --install-extension eamodio.gitlens code --install-extension eamodio.gitlens
echo "--- Add custom dictionary for VSCode"
sudo -E sh -c 'apt-get install -y jq moreutils'
mv /tmp/configs/clover.txt ${HOME}/.vscode/
CODE_SETTINGS="$HOME/.config/Code/User/settings.json"
cat $CODE_SETTINGS
jq '."cSpell.customUserDictionaries"=[{name:"Clover", "path": "~/.vscode/clover.txt"}]' $CODE_SETTINGS | sponge $CODE_SETTINGS
cat $CODE_SETTINGS
echo "--- Installing pylint" echo "--- Installing pylint"
/usr/bin/python3 -m pip install -U pylint --user /usr/bin/python3 -m pip install -U pylint --user
@@ -93,13 +98,13 @@ EOF'
sudo apt-get update sudo apt-get update
rosdep update rosdep update
mkdir -p ${HOME}/catkin_ws/src mkdir -p ${HOME}/catkin_ws/src
git clone --depth 1 https://github.com/CopterExpress/clover ${HOME}/catkin_ws/src/clover git clone https://github.com/CopterExpress/clover ${HOME}/catkin_ws/src/clover
git clone --depth 1 https://github.com/CopterExpress/ros_led ${HOME}/catkin_ws/src/ros_led git clone https://github.com/CopterExpress/ros_led ${HOME}/catkin_ws/src/ros_led
# These packages are missing from Noetic release, but are required for sitl_gazebo # These packages are missing from Noetic release, but are required for sitl_gazebo
git clone --depth 1 https://github.com/ethz-asl/mav_comm ${HOME}/catkin_ws/src/mav_comm git clone https://github.com/ethz-asl/mav_comm ${HOME}/catkin_ws/src/mav_comm
# Make PX4 and Gazebo plugins visible in the workspace # Make PX4 and Gazebo plugins visible in the workspace
ln -s ${HOME}/PX4-Autopilot ${HOME}/catkin_ws/src/PX4-Autopilot ln -s ${HOME}/Firmware ${HOME}/catkin_ws/src/Firmware
ln -s ${HOME}/PX4-Autopilot/Tools/sitl_gazebo ${HOME}/catkin_ws/src/sitl_gazebo ln -s ${HOME}/Firmware/Tools/sitl_gazebo ${HOME}/catkin_ws/src/sitl_gazebo
rosdep install --from-paths ${HOME}/catkin_ws/src --ignore-src --rosdistro noetic -y rosdep install --from-paths ${HOME}/catkin_ws/src --ignore-src --rosdistro noetic -y
sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
sudo /usr/bin/python3 -m pip install -r ${HOME}/catkin_ws/src/clover/clover/requirements.txt sudo /usr/bin/python3 -m pip install -r ${HOME}/catkin_ws/src/clover/clover/requirements.txt
@@ -107,11 +112,6 @@ source /opt/ros/noetic/setup.bash
cd ${HOME}/catkin_ws && catkin_make cd ${HOME}/catkin_ws && catkin_make
echo "source ${HOME}/catkin_ws/devel/setup.bash" >> ~/.bashrc echo "source ${HOME}/catkin_ws/devel/setup.bash" >> ~/.bashrc
source $HOME/catkin_ws/devel/setup.bash
echo "--- Adding Clover vehicle startup script to PX4"
ln -s "$(catkin_find clover_simulation airframes)"/* $HOME/PX4-Autopilot/ROMFS/px4fmu_common/init.d-posix/airframes/
echo "--- Installing npm" echo "--- Installing npm"
cd ${HOME} cd ${HOME}
NODE_VERSION=v10.15.0 # GitBook won't install on newer version NODE_VERSION=v10.15.0 # GitBook won't install on newer version
@@ -152,7 +152,6 @@ sudo -E sh -c 'apt-get update; apt-get install -y firefox'
echo "--- Installing Monkey web server" echo "--- Installing Monkey web server"
sudo apt-get install -y /tmp/packages/monkey_1.6.9-1_amd64.deb sudo apt-get install -y /tmp/packages/monkey_1.6.9-1_amd64.deb
sed "s/pi/${USER}/g" ${HOME}/catkin_ws/src/clover/builder/assets/monkey | sudo tee /etc/monkey/sites/default sed "s/pi/${USER}/g" ${HOME}/catkin_ws/src/clover/builder/assets/monkey | sudo tee /etc/monkey/sites/default
sudo -E sh -c "sed -i 's/SymLink Off/SymLink On/' /etc/monkey/monkey.conf"
sudo cp ${HOME}/catkin_ws/src/clover/builder/assets/monkey.service /etc/systemd/system/monkey.service sudo cp ${HOME}/catkin_ws/src/clover/builder/assets/monkey.service /etc/systemd/system/monkey.service
sudo systemctl enable monkey sudo systemctl enable monkey
@@ -167,44 +166,3 @@ chmod a+x ${HOME}/Desktop/*
echo "--- Cleaning up" echo "--- Cleaning up"
sudo -E sh -c 'apt-get -y autoremove; apt-get -y autoclean; apt-get -y clean; fstrim -v /' sudo -E sh -c 'apt-get -y autoremove; apt-get -y autoclean; apt-get -y clean; fstrim -v /'
echo "--- Validating"
# python --version # python-is-python3
python2 --version
python3 --version
# ipython --version
ipython3 --version
gazebo --version || true # FIXME: Gazebo exits with 255 on --version somehow
node -v
npm -v
byobu --version
git --version
vim --version
pip --version
pip3 --version
monkey --version
systemctl --version
# TODO: add Python tests
roscore -h
rosversion px4
rosversion clover
rosversion aruco_pose
rosversion mavros
rosversion mavros_extras
rosversion ws281x
rosversion led_msgs
rosversion dynamic_reconfigure
rosversion tf2_web_republisher
# rosversion compressed_image_transport
# rosversion rosbridge_suite
rosversion cv_camera
rosversion web_video_server
rosversion nodelet
echo "Trying running the Gazebo simulator, check the output"
timeout --preserve-status 30 roslaunch clover_simulation simulator.launch gui:=false --screen
echo "Trying running jMAVSim, check the output"
cd ~/PX4-Autopilot
HEADLESS=1 timeout --preserve-status 30 make px4_sitl jmavsim