I have been using dev container for over 2 years. Though running GUI programs is totally new to me. This is amazing. Thanks for sharing. Keep rocking !!!
Its crazy because we also went this way using both vscode and clion remoting into our containers. We didnt use this vscode plugin, but just provisioned the containers as remote entities with avahi and ssh. Then its just like remote development in any other ide that supports it, which is pretty much all of them
Awesome video, I love developing inside containers and your video is a great introduction in the topic ! I’m looking forward to learning more about this 🙂
Thank you very much for another informative docker video. I'm really looking forward to an explanation of how this will all be related to the articubot_one project. I'm making a robot based on your project with its own nuances and additions. Docker should simplify the development very much, but so far it is not possible to run the project in a container.
I am also doing this for years with VSCode on Windows, either with remote linux VMs and ssh into them or in WSL2. Glad IntelliJ is also working on implementing Dev-Containers as well (for those who want IntelliJ).
Hello sir, thanks for the great video, just a quick question, how can I add Gazebo to the dev container? I tried to add 'RUN sudo apt install ros-humble-gazebo-*' to Dockerfile template, but the container failed ERROR: failed to solve: process "/bin/sh -c sudo apt install ros-humble-gazebo-*" , any help would be appriated.
@RajinderYadav VSCode is not even a code editor, it's just a glorified text editor running in Electron which makes it less efficient than any native text editor.
Hello ! I really liked the way to develop that you've described. But, what I can do on arm ? Because osfr doesn't support this architecture. Maybe this can be the theme for new video ? Anyway, thanks for your efforts.
actually i face some problem when running the 'reopen in the container', i have an already build docker image, and after that when i try to reopen it in the container vs code shows error. so i do it another way which is from the docker extension, find the image i have build before, and right click the image, select the attach visual studio code, this make me able to open my ros2 workspace inside the container with vs code, but when i try to run my package after sourcing, it show package not found and unable to find /opt/ros/humble/setup.bash where i can find this file when i run ls /opt/ros/humble/setup.bash in terminal. anyone know what is the problem? thanks
you can always use vim to manage your 300 sourcefiles and depedencies, want to code like in the 1980's with a terminal and jump back and forth to man pages - go for it
This video is amazing, definetly changed my developement. I am trying it out and run into issues when connecting with another ROS system in the same network (in this case its a Turtlebot 4 using discovery Server) I am able to see the topics, but for example when I un `ros2 run teleop_twist_keyboard teleop_twist_keyboard` the robot does not react. I can ssh into the robot from the terminal, run the same command and then its happy times. What could be going on?
I really appreciate your videos Can you make video of dev container based on windows os, For ROS2 i had used ubuntu previously by dual boot but i liked windows because of its user friendly nature and i also use solidworks. I used Docker and xlaunch to use GUI tools in windows and was able to launch gazebo and rviz, but i would like to learn to do it from vscode via dev container. Thank you!
Thank you so much for the amazing video! I had a quick question. Is it possible to use this to develop inside containers on a remote machine? Using remote and dev containers at the same time.
Yep you can run Dev containers anywhere. You can also tunnel into the remote machine then launch your containers as if your on that machine with no setup. Just download the pack of remote dev extensions. Plenty of good docs on them too.
Yep, ROS 2 uses DDS underneath, it's a bit complicated and there are a few different implementations that can be swapped out (referred to as middlewares).
Hey , can you post video series of simulation of 6dof robotic arm using ROS (Gazebo and Rviz) also using a Moveit …and lastly integrating it with Raspberry pi and physical 6dof arm……
I have a request (i am a mechanical eng with little knowledge about open stack electronics and i am a noob when it comes to coding)...can you make a video on how effectively can we use use CHAT GPT for writing codes for robotics application. Such as (simple... motor drive controller, PID tuning, IOT..To complex.. imaging, computer vision etc) If YES, how effective and to what extent can complex code problems can be solved. If No, can other near future Ai tools like gemini will they be able help ease of development of code for Robotics sector? Thank you, Your subscriber😊
I don't think it's possible at this moment. You can ask Chat GPT/Google bard to do things like this: In C programming language, write me a function that takes 3 arguments: an integer a, a boolean b and a string c then returns another string. Then you describe what your function logic is. If other people can understand what your function logic does when reading what you write, then those AI's might and be able to generate some code for you.
Unfortunately at this moment in time Chat GPT is very prone to just straight up lying about certain aspects of programming implementation - in particular it likes to make up functions that feel like they should be part of external libraries, but actually aren't. You have to already know about the thing you're asking it in order to make sure it's right... which kind of defeats the whole purpose. There are uses for it - but they're not super obvious or straightforward right now.
For any application that has to touch "real" things like databases, hardware or the such, I would heavily advise against trusting ChatGPT with anything.
The trick is that you don't use chatgpt and actually learn robotics code so you know what your building and what it's doing instead of blindly copy pasting from a glorified next syllable predictor
Just never ever use words "effectifely" and "ChatGPT" in one sentence, please. If you can't code - learn it, if you can get a grade on mechanical engineering, it's strange to see you whining about some code which even some kids can do.
Well for starters, we just added a ton of complexity to an already complex subject. When things break, now you are troubleshooting both docker and the underlying OS. Really though...for the average developer, you aren't adding anything except complexity.
hello sir, not relevant to this video but a request for a tutorial. im following your robot from scratch series to build my own firefighting mobile robot, im having troubles with integrating a thermal camera to my system because i, so used to your series that i cant find any tutorials online.
Imagine you could just hit "compile" to have the computer build a binary of some hundred kb size that would do what you wrote in the source - without Docker, virtualization, installation or other ceremonies and gigabytes of wasted memory. Wouldn't that be cool? Too bad we lost that ability in this millennium. 😂
Yes, but now imagine you are responsible for developing tools that have to work across a variety of robotics platforms, each with different environments and dependencies and quirks, and now you don't need to have a whole VM for each one. (Which is the current practical alternative in industry). I'd prefer a couple GB docker image to a hard drive full of VM's but each to their own!
@@ArticulatedRobotics I probably didn't get my point across correctly. I neither blame you nor Docker, but rather the industry which brought us the mess with all those dependencies, quirks and VMs. As robotics often involves a second, incompatible hardware platform, that is actually acceptable - but nowadays people use Docker for tiny tools like Pihole and think nothing of it. We got used to ridiculous waste of resources to compensate chaotic development environments. Ironically, one of the few bright spots is the language in which Docker was written in: With Go, you can write self-contained, tiny binaries and even cross compiling isn't that hard.
Linux is lagging behind with the lack of a RDP-like protocol to enable the GUI programs from running against containers. RDP desktops just look amazing.
@@DanielVoogsgerd how is it not lagging behind mate? X11 Forwarding is really buggy and unstable... would you say its on par with RDP? RDP works flawlessly. Probably something Wayland-based will have a decent RDP competitor in the future.
@@rubiskelter I thought you meant that there wasn't really anything. But fair enough, at least nowadays X11 Forwarding isn't really up to par with RDP I suppose. Although I think X11 used to be a lot better in the past, but applications are constructed differently nowadays. Personally I don't really use nor wanna use either 🤷♂️
I guess there's two answers here. As to why Docker is useful in general, I've made a few videos on the topic. I think it's most helpful for package maintainers or people who are otherwise needing to work on multiple ROS versions or different sets of dependencies from a single machine. For example my main development machine is still running 20.04 and I chop and change between foxy and humble. This video in particular is about why Dev Containers make developing in a container (as opposed to deploying in a container) much easier, especially for people who are newer to Linux/working from Windows.
"If you're not developing with this, you're wasting your time" are you the ultimate entity over everything. I have enough of titles designed only for you tubers monetization purpose which makes searching anything useless these days. I have nothing wrong with the video but still I have to see it or look at comments because the title (other than being a bit arrogant) is totally useless. You tubers please stop with this nonsensical titles and thumbnails. They \are making the you tube experience a waste of time
Yes, I do agree and it hurts me a little every time I have to do it! When I have the time I need to sit down and do some proper A-B testing with more straightforward titles/thumbs but it appears to me that this is just what you have to do to actually get the content viewed at all. My hope is that for most people they are satisfied enough with the result that they'll put up with it - I know that's how I feel about other creators. I try to put something in the description to help with searchability, I wish you could release with two sets of titles, one to drive stray clicks from general interest and one that is more informative for those searching a particular topic. It's definitely something I have to grow in, all I can say is that this video has outperformed my next best (in its first week) by over 4x, and if I called it "VS Code Dev Containers Overview", that wouldn't have happened, but I also don't want to waste people's time so perhaps there's a middle ground. :) Thanks for the feedback!
@@ArticulatedRobotics fair enough, thanks for replying that's much appreciated. While I am not much on you tube anymore I still enjoy good content from creators like you. my apologies, the comment was a bit too strong, sometime it can get frustrating..
@@pepposoftwaredev3950 No man, I agree with both of you but your comment was not even the tiniest bit too strong, google (or other search engines for that matter) and youtube search are really near useless for me or atleast like 20 times worse than they've been a decade ago and since they're like the gateway to internet content, the whole internet is suffering heavily from this. And it's not really the creators fault, it's the fault of silicon valley. You can literally memorize and search for the exact title of a (unpopular) video and it still won't show up, which is why I almost bookmark everything I consider revisitable cause I ain't gonna find it that easily by searching anymore.
Most annoying for me is athat i need to develop from a lab enviroment that does not have internet access... So copilot which is my favorite tool does not work... I wish i could ssh into the remote dev server but have copilot go trough my own computer to the internet..
I couldn't even get Docker to work. I tried installing it a few times, on Win 10, and every time the same error prevented it from starting. I don't have the text of it, but it sure did tick me off.
I always like how all sh*t is put in container that sized 1Gb+, but in reality it's 99% apt get install a couple of packages ahahahahahahaha, overcomplicated for basically nothing.
You created a problem by using containers in the first place and then “solved” the problem by forcing a specific editor with a bunch of extra tooling added. Terrible.
Sorry…who “created the problem” of different operating systems existing…? As a DevOps engineer, this is THE way to build things FAST. No offense, but you genuinely have no idea what you’re talking about.
Yeah. What a problem. Being able to compile your code against different environments from one machine. What a problem that is. Dumbest comment I’ve read this week.
@@MiningForPies It’s not just about compiling code for different environments, it’s about the environments themselves. You neglect those environments, you will fail, within each for a different reason, and you will not know why, and you will be overwhelmed. I take it you’ve never had to install proof-of-concept software on-prem for differing environments. Clock yourself the next time you set up a PostgresQL server. Guarantee I’ll do it 8x faster at minimum.
@@astrovicis and I’ve been installing proof of concept software on premises for 25 years. Including one client who has a none internet connected set of servers with 900GB worth of databases, who are limited to secure USB data transfer (max size 6GB). Don’t you fucking come at me with having no experience.
Sorry this video is for people who can understand how docker works. You must be looking for the video on manually deleting node modules for the 1000th time
Hi, very nice video and very usefull, I try to follow you but I got an error with vscode when I try to reopen in container, could you please help me? ERROR [dev_container_auto_added_stage_label 2/7] RUN groupadd --gid 1
Stumbled upon your video and it's been a game-changer! 🚀 Your content is like a compass guiding us in the right direction. Seriously, if anyone isn't diving into this, they're missing out big time. Thanks a ton for sharing such valuable insights. Grateful for your work!
Thanks for the video, I have a question let's say we have a ROS system on my machine that is going to stream images using the cv bridge, how to get such image stream inside the docker image so that it can run a ros node that is having all its dependencies in that docker image.