My experience with VSCode ROS Code development with GitHub CoPilot Extension

34 views
Skip to first unread message

Ross Lunan

unread,
Mar 29, 2025, 4:08:56 PM3/29/25
to HomeBrew Robotics Club
As I'm relatively new to ROS Package development, as many have done so I use traditional text editors. As I've come to realize the benefits of using the Microsoft VSCode Linux App to make this work more efficient, I wanted to pass on my positive experience to anyone who might want to do so. As many, I was reticent to use a Microsoft software that started out as a Windows App, for Linux work. Not to worry , the VSCode App installed on a Linux Desktop ( and MAC OS as well) machine deployed with the many available Extensions (c++, make, python, colcon) are great, with a "not to steep" learning curve. Among the many available standard extensions,  I can suggest installing the GitHub Extension for code development and management of public githubs, or your own if you have one,  on your Local Desktop and on a Raspberry Pi Remotely.  In addition recently I now make use of the GitHub CoPilot Extension that provides "AI based" inline Coding suggestion as you type,  that's like having an expert stepping in when necessary to fix code and typo errors. You have to sign up for a Free individual account that has some use volume limits.(github.com/features/copilot). There's also a Copilot Chat that I have not (yet) tried . Ross

Alan Timm

unread,
Mar 29, 2025, 5:24:42 PM3/29/25
to HomeBrew Robotics Club
Welcome to the club Ross!

This, 10,000% this.  Without experiencing it firsthand it may seem like a gimmick, but the copilot version of coding with AI assistance is MaGiCaL.

Sometimes it feels like it's reading my mind, and suggests entire blocks of code that fit in perfectly with what I'm working on.
Othertimes it may not quite...  get what I'm trying to do.  That's ok.  You don't have to accept the suggestion.

Not sure how to approach something?  Write the intent into a comment, like "#This function does the thing".

Or... open up a chat window and ask a question.  copilot takes the source code and context into account.

David Murphy

unread,
Mar 29, 2025, 10:06:00 PM3/29/25
to hbrob...@googlegroups.com
If you've not already done so, you should install the ssh remote dev extensions. You can edit code and open terminal etc on the remote device just as if it were local to your host

On Sat, Mar 29, 2025 at 1:09 PM 'Ross Lunan' via HomeBrew Robotics Club <hbrob...@googlegroups.com> wrote:
As I'm relatively new to ROS Package development, as many have done so I use traditional text editors. As I've come to realize the benefits of using the Microsoft VSCode Linux App to make this work more efficient, I wanted to pass on my positive experience to anyone who might want to do so. As many, I was reticent to use a Microsoft software that started out as a Windows App, for Linux work. Not to worry , the VSCode App installed on a Linux Desktop ( and MAC OS as well) machine deployed with the many available Extensions (c++, make, python, colcon) are great, with a "not to steep" learning curve. Among the many available standard extensions,  I can suggest installing the GitHub Extension for code development and management of public githubs, or your own if you have one,  on your Local Desktop and on a Raspberry Pi Remotely.  In addition recently I now make use of the GitHub CoPilot Extension that provides "AI based" inline Coding suggestion as you type,  that's like having an expert stepping in when necessary to fix code and typo errors. You have to sign up for a Free individual account that has some use volume limits.(github.com/features/copilot). There's also a Copilot Chat that I have not (yet) tried . Ross

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/802471cc-15fd-45de-84e3-c5b257c5f981n%40googlegroups.com.

Rafael Skodlar

unread,
Mar 30, 2025, 4:15:42 PM3/30/25
to hbrob...@googlegroups.com
If you can't write good code with vi, nano, kate, or other good open
source programs then AI is not the answer. What's even worse is the
fact that software developers using AI leak proprietary projects to AI
spies:
https://go.writer.com/hubfs/pdfs/generative-ai-adoption-enterprise-survey-writer-com.pdf?utm_source=substack&utm_medium=email
When I watch what others do to Linux I just wonder what did they use
to learn the computer basics?
- obsessions with a narrow set of commands like
cd here, ls, cd deep-x, ls, cd deeper-x, ls, (oh, sh]it's not there) cd ..,
and on and on. ROS and instructions are full of this inefficient
work in html infested design.
- "sudo" really? You are not confident in your own work? See next.
- 5 or more open x-terminals splattered all over the screen. Modern
terminal emulators provide TABs that can be named and colorised any
way you want. For example, the first tab should be named root. You
"sudo su -" in there to become root once after power on. From there on
you execute only root commands in that tab. No need to enter the
password each time for sudo. Newbies might make a terrible mistake
once (rm -rf something-important), so they should learn about local or
remote backup methods first.
- alternative or an addition to GUI X-terminal; screen or tilix or byobu.
- check the history of commands and wrap them into bash scripts.
Scripts need to keep track of whatever in their own logs.
- learn how to edit the command line.
- keep two kinds of notes; text based for cut/paste into scripts etc.;
graphics: screenshots for reference. Some note taking programs can do
both in a nice searchable hierarchy tree. CherryTree and Basket Note
Pads for example.
- do NOT capitalize directories names and use spaces (hex 20) or other
unreasonable characters.
- learn to read man pages. Women too.
- No AI needed for most of the above unless you hate the owner of
electric cars and robots factory.

Mr. C, see I behaved myself, I did not mention who was using too many
cd and ls commands.
It's about CLI productivity which you learn over the years when the
boss keeps coming around and asks questions about the project progress
or you want to go home before midnight.

Yes, I got up on my left foot today,
Rafael
Exclusive Linux/Unix user since 1994.
================
On Sat, Mar 29, 2025 at 1:08 PM 'Ross Lunan' via HomeBrew Robotics
Club <hbrob...@googlegroups.com> wrote:
>
> As I'm relatively new to ROS Package development, as many have done so I use traditional text editors. As I've come to realize the benefits of using the Microsoft VSCode Linux App to make this work more efficient, I wanted to pass on my positive experience to anyone who might want to do so. As many, I was reticent to use a Microsoft software that started out as a Windows App, for Linux work. Not to worry , the VSCode App installed on a Linux Desktop ( and MAC OS as well) machine deployed with the many available Extensions (c++, make, python, colcon) are great, with a "not to steep" learning curve. Among the many available standard extensions, I can suggest installing the GitHub Extension for code development and management of public githubs, or your own if you have one, on your Local Desktop and on a Raspberry Pi Remotely. In addition recently I now make use of the GitHub CoPilot Extension that provides "AI based" inline Coding suggestion as you type, that's like having an expert stepping in when necessary to fix code and typo errors. You have to sign up for a Free individual account that has some use volume limits.(github.com/features/copilot). There's also a Copilot Chat that I have not (yet) tried . Ross
>

Steve " 'dillo" Okay

unread,
Apr 1, 2025, 1:43:08 AM4/1/25
to HomeBrew Robotics Club
On Sunday, March 30, 2025 at 1:15:42 PM UTC-7 Rafael Skodlar wrote:
If you can't write good code with vi, nano, kate, or other good open
source programs then AI is not the answer. What's even worse is the
fact that software developers using AI leak proprietary projects to AI
spies:
https://go.writer.com/hubfs/pdfs/generative-ai-adoption-enterprise-survey-writer-com.pdf?utm_source=substack&utm_medium=email
When I watch what others do to Linux I just wonder what did they use
to learn the computer basics?
- obsessions with a narrow set of commands like
cd here, ls, cd deep-x, ls, cd deeper-x, ls, (oh, sh]it's not there) cd ..,
and on and on. ROS and instructions are full of this inefficient
work in html infested design.
[...and so on].

I think a lot of this is personal preference for workflow and the day-to-day mechanics 
of getting things done and doesn't really have a lot to do with robotics or package development. 
I, for example, am very comfortable with Xterm and get a lot more done with multiple color-coded
terminals open and "splattered across the screen" at the same time as you say.
I can't stand tabs because they obscure the view of the whole project I'm working on and the context-switch of 
one window completely replacing the other is too disruptive for me.

'dillo

Anthony Robertson

unread,
Apr 1, 2025, 5:21:28 PM4/1/25
to HomeBrew Robotics Club
I entirely agree.  
The 'remote development' extension has been the best way that I've found to work with a raspberry pi.  Now with the CoPilot suggestions I find that I have more time to think about higher level problems and spend less time struggling with semicolons and loop syntax of each language. 
The new "copilot edits" feature will make modifications across several files at once which can be a little scary, but then I also learned about the 'timeline' panel which makes it easy to jump back to previous states of any file.  You can also just say to the "edits" chat, "Revert myfile.cpp to the way it was an hour ago", and it will.   

It's a new way of working but I'm trying to lean into it.  Its also a good reminder to commit your changes often so you can see if a robot has been fiddling with your code!
Reply all
Reply to author
Forward
0 new messages