Git Product home page Git Product logo

hadabot_main's People

Contributors

droter avatar jackpien avatar jschrier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hadabot_main's Issues

WWW - ROS 2 Introduction Clarifying Text

In ROS 2 Introduction, some of the text is confusing especially for those not educated in software development. I think the following instances could be reworded to improve readability for those with little development experience:

  • Step 2: The sentence "Similar to web development frameworks such as Django or Ruby on Rails, ROS is a robotics development framework" isn't helpful for those who don't know what a development framework is and have never used the listed examples. I think that those for whom the references to Django and Ruby on Rails would be helpful don't need the explanation and for those who need the explanation, the references will increase confusion. I think this could be simplified to say "ROS is a robotics development framework" with the definition of framework on the following line.
    • Similar logic applies to other references to Django and Rails.
  • Step 3: I don't think the click mapping to highlight images works well. It doesn't follow external or internal consistency rules.
  • Step 3: You use the pub/sub architecture pattern to explain how ROS works. This works for people familiar with this pattern, but many are not. The link to the Wikipedia page is not helpful for those who aren't knowledgeable enough to parse the page. If pub/sub must be used in the explanation, I think providing your own simpler explanation (disconnected from ROS terminology) rather than relying on the Wikipedia page would be helpful.
  • Step 3: The last image doesn't seem to correspond well to the text.
  • Step 4: If the word 'topology' must be used, I think it should be defined.

Formulas to compute distance traveled for each wheel

I assume that formulas used in code to compute distance traveled for each wheel is incorrect
No need to divide by PI
// Compute distance traveled for each wheel
float d_left_m = (wheel_radps_left_ * dt_s * wheel_radius_m_) / PI;
float d_right_m = (wheel_radps_right_ * dt_s * wheel_radius_m_) / PI;

Formulas in blog post is also incorrect
https://blog.hadabot.com/implement-ros2-odometry-using-vscode-in-web-browser.html
No need to multiply by 2
float d_left_m = 2* (wheel_radps_left_ * dt_s * wheel_radius_m_);
float d_right_m = 2 * (wheel_radps_right_ * dt_s * wheel_radius_m_);

The correct formulas should be
float d_left_m = (wheel_radps_left_ * dt_s * wheel_radius_m_);
float d_right_m = (wheel_radps_right_ * dt_s * wheel_radius_m_);

Let's check it
if wheel_radps_left_ = 2 * pi (one rotation per second)
distance should be equal 2piwheel_radius_m
Using last formulas we obtainb correct values

Motor's torque and RPM is not suitable for automatic control

Hi Jack,

In this and several other issues I plan to share my experience from last two weeks.

Starting from the most worst thought.

This unexpensive motors does not suit for application of automatic control.
They are too fast for home usage. And their have to small torque for automatic control.

For my my motors max rotaton is 21 rad per second. It's 3.34 rotation per second. Or 200 rotation per minute (RPM)
With this max RPM speed of the car is 0.68 m/s
Max angular velocity of my car is 11.5 rad / s

Because of the motors small torques they star to rotate only afte PMW is higher some threshold.
As a result minumum speed of my car is 0.45 m/s
Minumum angular velocity of my car is 8 rad/s

When disks with 20 holes is used for rotation sensors we can receive wheel' angular velocity estimation every 27 ms (for max speed).

I think it would be correct to use 27 ms as a period for automatic control. The same frequenciy as for angular velocity estimation. In my experiments I used 20 ms for control period.

When motors rotating with minimum speed
car will move

  • in right direction : 0.009m (about 1 sm)
  • in angular direction 0,16 rad = 9,16 grad

as a result of such fast rotation it's very hard to make orientation with greater accuracy than 9,16 grad
as a result of low torque it's very hard to rotate precisely over small angles during linear motion to a goal position.
it's possible to rotate for 90 grad with 9,16 precision (10%). But it's very hard to rotate to 10 grad trying to correct motion
Because of motors big RPM oscilattion will start near goal orientation.

All this conclusion are not theoretical but from my real world experience of last two week.

I think about changing my motors to
these one

Please correct me if I am not right with my conclusions.

Regards,
Dmitry

ImportError: No module named zipp

I ran into an error when executing: docker-compose up -d

import zipp

ImportError: No module named zipp

This fixed the issue:
pip install --upgrade pip; pip install zipp

Just in case someone else runs into the same issue.

Codeserver does not work at the last version

Today I've upgraded to the last version of hadabot repo.
After that codeserver stoped work. Page with Visual Studio does not loading on port 9123
I use command
docker-compose up -d
to start codeserver and webbridge containers.

WebBridge works well

uhadabot.hbz upload fails from webtool

After using the web tool to upload (successfully connects to /dev/ttyUSB0), no lights blinks, and a check of the file system shows:

picocom /dev/ttyUSB0 -b115200

picocom v3.1

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        : 
omap is        : 
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready

>>> import os
>>> os.listdir()
['boot.py', 'webrepl_cfg.py']
>>> 

Using #32 to bypass the previous problem, I tried uploading the uhadabot.hbz with the web utility. I'm not sure what I should be looking for, but it doesn't seem to be working as the light doesn't blink as the web application says it should, and listing the directory on the ESP32 doesn't show any new information.

gpg: no valid OpenPGP data found.

When I type "docker-compose up -d",it outputs gpg: no valid OpenPGP data found.

ERROR: Service 'hadabot_ros2_codeserver_service' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y locales curl gnupg2 lsb-release wget git sudo unzip && locale-gen en_US en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 && export LANG=en_US.UTF-8 && curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add - && sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu lsb_release -cs main" > /etc/apt/sources.list.d/ros2-latest.list' && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 2
Snipaste_2021-04-27_11-54-18

ERROR: Version in "docker-compose.yaml" is unsupported

Hi,

Thanks for putting this together.

I tried running the container and I am getting this error:
$ docker-compose up -d
/home/matt/.local/lib/python2.7/site-packages/requests/init.py:83: RequestsDependencyWarning: Old version of cryptography ([1, 2, 3]) may cause slowdown.
warnings.warn(warning, RequestsDependencyWarning)
ERROR: Version in "./docker-compose.yaml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

$ docker --version
Docker version 18.09.7, build 2d0083d

$ docker-compose --version
docker-compose version 1.8.0, build unknown

Am I running the wrong version of docker?

theta_rad from orientation in update_odometry()

Hi Jack,

In update_odometry theta_rad is set incorrect
https://github.com/hadabot/hadabot_main/blob/master/content/p7/hadabot_ws/src/hadabot_driver/src/hadabot_controller.cpp

auto theta_rad = pose_->pose.pose.orientation.z;

Correct procedure is
tf2::Quaternion q0(pose_->pose.pose.orientation.x, pose_->pose.pose.orientation.y, pose_->pose.pose.orientation.z, pose_->pose.pose.orientation.w);
tf2::Matrix3x3 m(q0);
double roll, pitch, yaw;
m.getRPY(roll, pitch, yaw);
double theta_rad = yaw;

In constructor initial orientation should be initialized from Euler angles
tf2::Quaternion q;
q.setEuler(0,0,0);
pose_->pose.pose.orientation.x = q.getX();
pose_->pose.pose.orientation.y = q.getY();
pose_->pose.pose.orientation.z = q.getZ();
pose_->pose.pose.orientation.w = q.getW();

Regards,
Dmitry

MPU6050 for car'orientaion estimation give good positin estimation

There is a good news.
I was able to obtain quite good accuracy with pose and orientation estimation.

After making some circle over my room and returned to initial position I receive nearly the same position of the car
as on start.

It's became possible after I've started to use MPU6050 DMP measurements for car orientation estimation.
I simply don't use orientation estimation from wheels rotation and use angle obtained from MPU6050.

I don't integrate gyroscope measurements by myself but use result from on board DMP.
From theory I know that orientation estimation from gyroscope measurements have inaccuracy because of drift.
I had this problem when tried to integrate gyroscope measurements by myself.
But results from on board DMP is stable and does not had drift during my experiments.

Orientation estimation from wheel rotation is also quite good now. But has a drift. This drift is a result of position estimation errors in my previous experiments.
You can see graph of MPU measurements (Red) and wheels rotation based measurements (green) on the following plot.

Screenshot - 06 11 2020 , 22_04_46

In fact angular velocity measurements are nearly the same for both methods.

I also moved positon estimation from PC to ESP32 because I needed to use this position estimation in real time in control loops.
Now I estimate position after every sensor's measurements.

It's possible to obtain good accuracy when position is estimated on PC. But in this case timestamps for sensor measurements are needed. I had such version and worked well also.

Regards,
Dmitry

Speed adjustment from teleop page

Speed control from teleop page is not working properly.
Speed 3% generates \hadabot\cmd_vel message with data equal 0.42
Speed 5% generates message with data equal 0.71
7% generates message with data equal 1.0

WWW - General Notes

In order to not flood the issues, this acts as a master issue for all general notes from the website mostly related to the instructions provided. Comments can be made to this rather than creating new issues.

Command latency with micropython firmware

Hi,

I've tried your hadabot software stack. (content/p7)
It works for me.
But there is a lattency for user commands (issued from teleop page).
Because of the latency car is not responsive to user commands.
I don't yet understand the reason.

Webbridge work well for the messages from teleop to ros.
ros2 topic echo /hadabot/cm_vel
shows commands from teleop without a latency.
But firmware reacts to commans with a latency.

To understand more I've tried to use another esp32 firmware based on Micro-ROS.
In this case additional ros2 node is started (micro-ros agent)
and communication with esp32is handeled by this node (but not with web-bridge)
Communication between esp32 and micro-ros agent is over UPD (over WiFi)
In this case all works great. Car is fully responsive.

As a result I assume that source of the problem in the following list

  • micropython
  • websockets communication with esp32 over webbridge
  • websockets over TCP

I've tried to exclude micropython from this and implemented websockets using Arduino IDE (C++).
Unfortunately I have some problem with this experiment. Connecttion from this firmware to websocket is not stable
and droped.

Do you also have a latency wih your micropython firmware?
I assume not but not understand how to use it by my self.

Regards,
Dmitry

Control latency is too high from PC

The next problem for automatic control is a control latency because of the communication between PC an ESP32.
When conrol is made from ROS nodes on PC the control latency is too high. (200-300 ms)

When I've changed to Micro-ROS control latency became small enough for manual control.
Car started to stop nearly after an user command.

But my next experiments shown that contorl latency is too high for automatic control.
Time period between data publishing with sesor data and received control command varies between 200-300 ms.

When rotation with 8 rad/s (the smallest possible angular velocity) during this time car will rotate over 1.6 rad (about 90 grad).
It's not possible with such lattency to rotate to precise angles.

Control latency should be smaller 27 ms (min period of sensor data when rotating with max speed 21 rad/s).
Currently I thinks that it's not possible if control commands are issued from PC.

With microROS I've obtained 40 ms delay for message publishing and 10-15 delay for message subscribing.
plus time of working of Navigation2 stack (about 100ms).

As a result I've moved all control algorithms from PC to ESP32.
I also moved pose estimation to esp32.

Now I've implemented

  • control for wheels speed with PID
  • control for position and orientation with PID

This control algorithms works in real time without communication latency and are capable to control with 20 ms period.
As a result it's not possible to use ROS navigation2 stack.

In fact I am very interested to use this stack from PC but my experiments have shown that it's not possible.
I would be glad if I am not right.

P.S for my experiments I've used local NTP server and syncronized clocks of esp32 and ros nodes with > 0.0001 s accuracy.

Regards,
Dmitry

ROS2-web-bridge container fails after starting

To re-create:

  1. Followed instructions to start demo of hadabot system by following these instructions:

$ git clone https://github.com/hadabot/hadabot_main.git
$ cd hadabot_main/docker
$ docker-compose up -d

  1. Navigated to a new tab, opened localhost:9123, and can see the browser VScode terminal, and everything appears to be working, great

  2. Open up a new tab at: https://www.hadabot.com/tools/teleop.html, expecting to see a confirmation that it is connecting to the ROS2 codeserver container via the web-bridge container, however connection fails.

  3. Upon further investigation of the log files, the web-server container has exited with this error message:

/home/user/ros2-web-bridge/node_modules/rclnodejs/lib/context.js:47
  static _instances = [];
                    ^

SyntaxError: Unexpected token =
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)

TO FIX:

To address this, I believe it is caused by the web-server container building nodejs version 10.x.x ( see this issue: RobotWebTools/ros2-web-bridge#172)

I therefore changed line 11 in "Dockerfile.ros2_web_bridge" to:

curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh && \

I then rebuilt the container, started it, and now I have a working connection!

Suggest taking a look at this and updating the repo to address this.

Cheers!

VSCode Code Server complains that C++ module is not installed correctly

A recent docker stack build causes VSCode Code Server tooltip to pops up saying C++ module (1.0.1) is not installed correctly.

Output panel says

[Error - 4:00:56 PM] Connection to server got closed. Server will not be restarted.
/home/hadabot/.local/share/code-server/extensions/ms-vscode.cpptools-1.0.1/bin/cpptools: 1: Syntax error: word unexpected (expecting ")")

Apparently other people also have problems - microsoft/vscode-cpptools#6190

But looks like it's a Code Server issue downloading the aarch64 vesion of cpptools fro arm64 ?! - coder/code-server#2120

Workaround is to explicitly download the cpptools-linux version

Using mobile phone to control hadabot from teleop page

It would be great to have an option to control hadabot from mobile phone using teleop page.

Teleop page is connected to ros2 on localhost.
It prevents from using teleop page to control hadabot from mobile phone (connected to the same LAN as ros2 computer)
In case teleop page would provide configuration option for ros2 IP address in the LAN
it could be possible to use teleop from mobile phone.

Thanks for your work!

permission denied errors at beginning of docker-compose

Hello, In addition to the other open issue, I am seeing this at the top of my docker logs. Assuming this may be related?

$ docker-compose up
[+] Running 2/0
 ✔ Container hadabot_ros2_codeserver  Created                                                                                                                                0.0s 
 ✔ Container hadabot_ros2_web_bridge  Created                                                                                                                                0.0s 
Attaching to hadabot_ros2_codeserver, hadabot_ros2_web_bridge
hadabot_ros2_codeserver  | * enable custom user: hadabot
hadabot_ros2_codeserver  | useradd: user 'hadabot' already exists
hadabot_ros2_codeserver  |   set default password to "ubuntu"
hadabot_ros2_codeserver  | cp: 
hadabot_ros2_codeserver  | cannot stat '/root/.config'
hadabot_ros2_codeserver  | : No such file or directory
hadabot_ros2_web_bridge  | Websocket started on ws://localhost:9090
hadabot_ros2_codeserver  | chown: 
hadabot_ros2_codeserver  | changing ownership of '/home/hadabot/hadabot_main/.git/objects/pack/pack-3a5959c42fa63330e8020fe6ba3c8836315b2221.idx'
hadabot_ros2_codeserver  | : Permission denied
hadabot_ros2_codeserver  | chown: changing ownership of '/home/hadabot/hadabot_main/.git/objects/pack/pack-3a5959c42fa63330e8020fe6ba3c8836315b2221.pack': Permission denied
hadabot_ros2_codeserver  | 2023-08-09 02:06:43,264 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
hadabot_ros2_codeserver  | 2023-08-09 02:06:43,266 INFO Included extra file "/etc/supervisor/conf.d/codeserver.conf" during parsing
hadabot_ros2_codeserver  | 2023-08-09 02:06:43,266 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
hadabot_ros2_codeserver  | 2023-08-09 02:06:43,282 INFO RPC interface 'supervisor' initialized
hadabot_ros2_codeserver  | 2023-08-09 02:06:43,282 CRIT Server 'unix_http_server' running without any HTTP authentication checking

This happens before the cannot import name 'escape' from 'jinja2' error

Codeserver does not work at the last version

Today I've upgraded to the last version of hadabot repo.
After that codeserver stoped work. Page with Visual Studio does not loading on port 9123
I use command
docker-compose up -d
to start codeserver and webbridge containers.

WebBridge works well

ESP32 setup code fails: requesting non-existent key in hb.json and old class attribute

In step: Build Hadabot: Set up the ESP32 (using CLI tools) to interface with ROS 2

Code in hadabot_main/content/lessons/build_hadabot/m01_setup_esp32/firmware/ros2_interface/uhadabot/main.py fails to execute successfully on ESP32 (so far unattached to anything except a USB serial port)

Gleaning from the error messages below, it expects a as_ap key in the hb.json file (but none is created by setup_hadabot_config.py).

There also appears to be some problem related to creating an oled attribute in the class (this seems like it sets up some oled display hardware that is not present in the kit.). I also tried commenting this out, but then there are

Here's the serial output upon running this on a cleanly-flashed device:

ets J�uZ-�,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5636
load:0x40078000,len:12696
load:0x40080400,len:4292
entry 0x400806b0
Need to move webrepl_cfg.py to root folder
Need to move hb.json to root folder
Need to move main.py to root folder
Need to move ssd1306.py to root folder
All core files in uhadabot, so we will update the entire folder
Moving webrepl_cfg.py from uhadabot to root
Moving hb.json from uhadabot to root
Moving main.py from uhadabot to root
Moving ssd1306.py from uhadabot to root
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5636
load:0x40078000,len:12696
load:0x40080400,len:4292
entry 0x400806b0
Connecting to network Ranchito Dos Osos-2G...
Waiting for network to connect...
Waiting for network to connect...
Network connected. Config:  ('192.168.1.57', '255.255.255.0', '192.168.1.1', '192.168.1.1')
Installing to: /lib/
Warning: micropython.org SSL certificate is not validated
Installing micropython-logging 0.3 from https://micropython.org/pi/logging/logging-0.3.tar.gz
INFO:__main__:Welcome to Hadabot - www.hadabot.com
WebREPL daemon started on ws://192.168.1.57:8266
Started webrepl in normal mode
Network connected. Config:  ('192.168.1.57', '255.255.255.0', '192.168.1.1', '192.168.1.1')
INFO:boot:Welcome to Hadabot - www.hadabot.com
WebREPL daemon started on ws://192.168.1.57:8266
Started webrepl in normal mode
ERROR:__main__:Init exception hit as_ap
Traceback (most recent call last):
  File "main.py", line 452, in <module>
  File "main.py", line 449, in main
  File "main.py", line 346, in __init__
  File "main.py", line 388, in shutdown
AttributeError: 'Hadabot' object has no attribute 'oled'
MicroPython v1.15 on 2021-04-18; ESP32 module with ESP32
Type "help()" for more information.
>>> 

Unsigned package errors in `new-user-software-stack-setup` tutorial

When on Step 4 of the Setup the software stack tutorial

The docker-compose up step fails with the following errors:

#6 8.751 Reading package lists...
#6 9.952 W: GPG error: http://dl.google.com/linux/chrome/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4EB27DB2A3B88B8B
#6 9.952 E: The repository 'http://dl.google.com/linux/chrome/deb stable InRelease' is not signed.
------
executor failed running [/bin/sh -c apt-get update &&     apt-get upgrade -y &&     apt-get install -y locales curl gnupg2 lsb-release wget git sudo unzip &&     locale-gen en_US en_US.UTF-8 &&     update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 &&     export LANG=en_US.UTF-8 &&     curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -  &&     sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list' &&     rm -rf /var/lib/apt/lists/*]: exit code: 100
ERROR: Service 'hadabot_ros2_codeserver_service' failed to build : Build failed

Build error

When I tired out the docker-compose up it gave me a build error. I could not figure out how to solve this.
Hope you could help me out.

hadabot_ros2_codeserver_service failed to build.
image

Building Dockerfile.ros2_codeserver fails with `permission denied` on 27/35 and 29/35

...in both/either docker-compose up or docker build; (e.g.) On Pop!_OS 22.04 LTS:

Step 27/35 (cpptools, python extensions)

Step 27/35 : RUN wget https://github.com/microsoft/vscode-cpptools/releases/download/1.0.1/cpptools-linux.vsix &&     wget https://github.com/microsoft/vscode-python/releases/download/2020.5.86806/ms-python-release.vsix &&     code-server --verbose --install-extension cpptools-linux.vsix &&     code-server --verbose --install-extension ms-python-release.vsix &&     rm cpptools-linux.vsix &&     rm ms-python-release.vsix &&     code-server --install-extension twxs.cmake &&     /usr/bin/python3 -m pip install -U numpy mypy autopep8 flake8 jupyterlab pandas transforms3d scipy --user &&     echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> .bashrc
 ---> Running in c26d1be32a84
--2023-08-12 12:28:49--  https://github.com/microsoft/vscode-cpptools/releases/download/1.0.1/cpptools-linux.vsix
Resolving github.com (github.com)... 140.82.112.3
Connecting to github.com (github.com)|140.82.112.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/54800346/619ead80-fc25-11ea-8c66-848e23495edb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230812%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230812T122849Z&X-Amz-Expires=300&X-Amz-Signature=bea3db3b5c7a794e7153df3bb2e90a9b49e84190319707d14ba172b6d0357951&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=54800346&response-content-disposition=attachment%3B%20filename%3Dcpptools-linux.vsix&response-content-type=application%2Foctet-stream [following]
--2023-08-12 12:28:49--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/54800346/619ead80-fc25-11ea-8c66-848e23495edb?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230812%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230812T122849Z&X-Amz-Expires=300&X-Amz-Signature=bea3db3b5c7a794e7153df3bb2e90a9b49e84190319707d14ba172b6d0357951&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=54800346&response-content-disposition=attachment%3B%20filename%3Dcpptools-linux.vsix&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.108.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 21192772 (20M) [application/octet-stream]
cpptools-linux.vsix: Permission denied

Cannot write to ‘cpptools-linux.vsix’ (Success).
The command '/bin/sh -c wget https://github.com/microsoft/vscode-cpptools/releases/download/1.0.1/cpptools-linux.vsix &&     wget https://github.com/microsoft/vscode-python/releases/download/2020.5.86806/ms-python-release.vsix &&     code-server --verbose --install-extension cpptools-linux.vsix &&     code-server --verbose --install-extension ms-python-release.vsix &&     rm cpptools-linux.vsix &&     rm ms-python-release.vsix &&     code-server --install-extension twxs.cmake &&     /usr/bin/python3 -m pip install -U numpy mypy autopep8 flake8 jupyterlab pandas transforms3d scipy --user &&     echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> .bashrc' returned a non-zero code: 3

Step 29/35 (ros extension):

Step 29/35 : RUN unzip vscode-ros-dev-vsix.zip &&     code-server --install-extension vscode-ros-dev.vsix &&     rm vscode-ros-dev*.*
 ---> Running in 188630e583a7
Archive:  vscode-ros-dev-vsix.zip
error:  cannot create vscode-ros-dev.vsix
        Permission denied
The command '/bin/sh -c unzip vscode-ros-dev-vsix.zip &&     code-server --install-extension vscode-ros-dev.vsix &&     rm vscode-ros-dev*.*' returned a non-zero code: 50

Hadabot Micro-ROS based hardware

Hi Jack,

I've published my Hadabot Micro-ROS based firmware.
https://github.com/dsryzhov/hadabot_rds

See description on the link how to configure and build it
https://github.com/dsryzhov/hadabot_rds/tree/master/hadabot_microros_firmware

It took some time on this week

  • to refactor the original firmware version to use high-level arduino-esp32 API (originally low level esp idf api was used)
  • to create docker image that helps to build the firmware easily

I assume that currently you can build and run it.
On the next step I plan to additionally test and enhance
the firmware after refactoring (to high level hardware api).

Regards,
Dmitry

docker compose up: ImportError: cannot import name 'escape' from 'jinja2'

Following the directions of running docker compose up in the docker subdirectory leads to this python error:

Attaching to hadabot_ros2_codeserver, hadabot_ros2_web_bridge
hadabot_ros2_codeserver  | * enable custom user: hadabot
hadabot_ros2_codeserver  | useradd: user 'hadabot' already exists
hadabot_ros2_codeserver  |   set default password to "ubuntu"
hadabot_ros2_codeserver  | cp: cannot stat '/root/.config': No such file or directory
hadabot_ros2_web_bridge  | Websocket started on ws://localhost:9090
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,367 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,367 INFO Included extra file "/etc/supervisor/conf.d/codeserver.conf" during parsing
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,367 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,371 INFO RPC interface 'supervisor' initialized
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,371 CRIT Server 'unix_http_server' running without any HTTP authentication checking
hadabot_ros2_codeserver  | 2023-05-24 19:19:20,372 INFO supervisord started with pid 33
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,376 INFO spawned: 'nginx' with pid 35
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,382 INFO spawned: 'web' with pid 36
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,388 INFO spawned: 'codeserver' with pid 37
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,397 INFO spawned: 'xvfb' with pid 38
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,403 INFO spawned: 'wm' with pid 39
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,408 INFO spawned: 'lxpanel' with pid 40
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,412 INFO spawned: 'pcmanfm' with pid 41
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,415 INFO spawned: 'x11vnc' with pid 45
hadabot_ros2_codeserver  | 2023-05-24 19:19:21,419 INFO spawned: 'novnc' with pid 47
hadabot_ros2_codeserver  | Traceback (most recent call last):
hadabot_ros2_codeserver  |   File "/usr/local/lib/web/backend/run.py", line 122, in <module>
hadabot_ros2_codeserver  |     main()
hadabot_ros2_codeserver  |   File "/usr/local/lib/web/backend/run.py", line 118, in main
hadabot_ros2_codeserver  |     entrypoint()
hadabot_ros2_codeserver  |   File "/usr/local/lib/web/backend/run.py", line 78, in run_server
hadabot_ros2_codeserver  |     from vnc.app import app
hadabot_ros2_codeserver  |   File "/usr/local/lib/web/backend/vnc/app.py", line 6, in <module>
hadabot_ros2_codeserver  |     from flask import (
hadabot_ros2_codeserver  |   File "/usr/local/lib/python3.8/dist-packages/flask/__init__.py", line 14, in <module>
hadabot_ros2_codeserver  |     from jinja2 import escape
hadabot_ros2_codeserver  | ImportError: cannot import name 'escape' from 'jinja2' (/home/hadabot/.local/lib/python3.8/site-packages/jinja2/__init__.py)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.