-
Notifications
You must be signed in to change notification settings - Fork 0
Example for a development environment
Example for a development environment
I use Visual Studio Code for development in the moment https://code.visualstudio.com/. It´s a handy open source IDE with GIT integration and a strong plugin eco system. So I can use it to develop ROS nodes in C++ and python, as well as develop recipes for the arduinos and upload them out of the IDE.
I use following plugins:
- Arduino (Microsoft): you can verify and upload recipes and use serial monitor
- C/C++ (Microsoft): IntelliSense, debugging and code completion for C and C++
- vscode-icons (Roberto Huertas): have better icons to distinguish between source files, as we use some programming and scripting languages
- for python if have no plugins jet. Any suggestions?
Just select as a project folder your GitHub/sepp/src folder (cloned SEPP repo: https://github.com/intence/sepp.git), than you have ROS and Arduino stuff in one tree view. For Arduino: configure COM port, boud rate, board type, used programmer
Edit python and C++ code as you know it. Nothing special here to do.
Edit Arduino code as you know it. Press F1 to access the commands, search and press the upload command, after you connected the Arduino via USB (the right one, as we use two of them :)) The code will be verified, uploaded and the Arduino will have a reset.
I use Tiger VNC to remote control the Ubuntu system on SEPP: https://tigervnc.org/. You can use other VNC software as well. There is a problem with encryption so follow this guide to set the Jetson up for VNC: http://ubuntuhandbook.org/index.php/2016/07/remote-access-ubuntu-16-04/
There are three images of an Ubuntu:
- image of system running on Jetson board of SEPP. Please write me if you need the latest backup image if you want to start fast with SEPP, otherwise you have to manipulate your Jetson installation for yourself. An introduction will follow.
- JetPack (image for Jetson development): with this image you can update and backup the Jetson board, develop for it (not used) and do some performance measurements (could be interesting later). This one is downloaded as is from NVidia development page: https://developer.nvidia.com/embedded/jetpack
- Remote ROS installation: here ROS is installed locally to have a distributed ROS system to teleoperate and control SEPP. Please write me if you need the latest image if you want to start fast with SEPP, otherwise you have to manipulate Ubuntu installation for yourself. An introduction will follow.
https://www.putty.org/. As I don´t have a cross-compile setup nor a continuous deployment on my local machine I have to transfer source code to the Jetson and compile it there. WinSCP has a handy synchronize mode which transfers files to the target automatically after changes on the local machine. I use this as a workaround for the moment. If someone has a better idea (perhaps ROS buildserver etc.) please write me, because I had no time to search for another solution :).
I use the good old PuTTY as an SSH client: https://www.putty.org/. Often I don´t want to start an VNC session. Just configure your IP from the Jetson (has to be accessible from your local machine) and use your credentials from the Jetson Ubuntu.
As we use ROS as a basis for SEPP and also a distributed ROS setup (ROS is also running at client PC, but roscore is running at SEPP as a master), we can use the full power of rqt to define GUIs to control and capture and replay SEPPs actions.
Today it is used to (more will follow):
- show all messages and payloads which are floating around the ROS nodes and between the Arduinos and the Jetson
- visualize some signals as graphs
- use the node overview to see if all nodes are up and running and communicating
- use camera views to see what SEPP sees
- use RViz to see the world of SEPP
- use image streams to see output of different steps of the image processing chain