Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Superthin templates] Fix GUI widget in follow line exercise #2464

Open
pawanw17 opened this issue Mar 27, 2024 · 19 comments
Open

[Superthin templates] Fix GUI widget in follow line exercise #2464

pawanw17 opened this issue Mar 27, 2024 · 19 comments
Assignees
Labels
javascript Pull requests that update Javascript code superthin

Comments

@pawanw17
Copy link
Collaborator

The GUI Widget in the superthin version of the follow line exercise is broken, It is supposed to display a map overlayed on the camera images.

It works in master, but due to changes in superthin and movement from sharedVariables, the GUI just hangs up. The current workaround is to have a separate react component that only displays the camera images.

The files that likely need changes are
https://github.com/JdeRobot/RoboticsAcademy/blob/master/react_frontend/src/components/visualizers/UpdateView.js
https://github.com/JdeRobot/RoboticsAcademy/blob/master/react_frontend/src/libs/UpdateRenderer.js

the development can be started at the 4.5.6.beta RADI
docker pull jderobot/robotics-academy:4.5.6.beta

This is how it is supposed to look
image

@JovanYap
Copy link

JovanYap commented Apr 8, 2024

Hi Pawan, I have downloaded the 4.5.6.beta development version and started it on my end and the overlay is not displayed as well. I am current taking a look at both the files and I will first create a separate react component that displays the camera image (I will try to find an alternative as well just in case this does not work) and conduct unit + integration testing after. Thank you!

@pawanw17
Copy link
Collaborator Author

pawanw17 commented Apr 8, 2024

Hi @JovanYap Thanks for taking a look. To see it being overlayed you can take a look into
jderobot/robotics-academy:4.4.31
The widget is not updated (likely because of the backend) but at least it is visible.

Also run the RADI with --debug flag to open a terminal, run the script ./entrypoint.sh to start robotics academy and ./kill_all.sh to kill all the processes.

@JovanYap
Copy link

JovanYap commented Apr 9, 2024

Hi @pawanw17 Thanks for the information! I see that the overlay is present but not updating on version 4.4.31 but it is not present for 4.5.6beta. I am currently taking a look at ws_gui.js code that is related to follow the line exercise since it updates the map overlay and the position of the car. Are you referring to the REST API code for the backend part and may I ask where can I view the code or changelog for the 4.5.6beta and 4.4.31 versions? Thank you!

@pawanw17
Copy link
Collaborator Author

pawanw17 commented Apr 9, 2024

@JovanYap
Copy link

Thank you so much for the information! I am currently working on finding the source of the bug.

@JovanYap
Copy link

JovanYap commented Apr 16, 2024

Hi @pawanw17, I did some testing and noticed that it is indeed a backend issue because the message.data.update object returned from the subscribed callback function has undefined values for lap, map, v and w fields.

Also, I noticed the file in entry_point/ros2_humble has the wrong filepath as gui.py and exercise.py do not exist, I tried changing to gui_exercise.py and it does not work as well.

super(Exercise, self).__init__(exercise_command=f"{current_path}/../../python_template/ros2_humble/exercise.py 0.0.0.0",
                                       gui_command=f"{current_path}/../../python_template/ros2_humble/gui.py 0.0.0.0 {circuit}",
                                       update_callback=update_callback)

Kindly advise on the current issue if you have any insights on the migration from ros1 to ros2. Thank you so much!

@pawanw17
Copy link
Collaborator Author

pawanw17 commented Apr 24, 2024

Hi @JovanYap I took a look at the lap, map, v, w values and they seem to be static
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}
{"image": "", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}

I don't think this would be the reason the widget crashes

For now we can ignore the entry_point/ros2_humble/exercise.py

@Apoorvgarg-creator
Copy link
Member

@pawanw17 The reason it was not rendering because the image is basically coming as empty "".
The function used is drawImage getting nothing in image, hence no preview.

@pawanw17
Copy link
Collaborator Author

pawanw17 commented Jun 12, 2024

@Apoorvgarg-creator even with the image the widget gets crashed....

The previous comment was intentionally made to have image as "" so lap and map can be seen better.

@Apoorvgarg-creator
Copy link
Member

Apoorvgarg-creator commented Jun 12, 2024

@Apoorvgarg-creator even with the image the widget gets crashed....

-- Can you send me a few sample JSON for this where image data is present.
Current Data (RADI Version : 4.5.13) -

image : "{\"image\": \"\", \"shape\": \"\"}"
lap : "0"
map : "(11.99880433440535, 63.58239772652345)"

Since, we are using Flex Container now, the size of the circuit is not fixed, which is scaling the image ( circuit ).

Yes, Since beginning (Correct me if I am wrong) I remember while migrating also, image data was null only. we will basically draw a red dot over the static image and use the position data coming from backend to move it on the map.

@pawanw17 I have raised a draft PR, but working on the other circuit also, as now it is configured as world, earlier it was changed using a dropdown selector for circuit inside the visualization component only.

@pawanw17
Copy link
Collaborator Author

@Apoorvgarg-creator If you run the code
GUI.showImage(HAL.getImage())
Inside the while loop

Then you should see the image data being populated.

I can share the samples tomorrow

@pawanw17
Copy link
Collaborator Author

Hi @Apoorvgarg-creator
The code I ran on 4.5.13

from GUI import GUI
from HAL import HAL
# Enter sequential code!
HAL.setV(2)
while True:
    im = HAL.getImage()
    GUI.showImage(im)
    # Enter iterative code!

Here is the sample json

{"image": "{\"image\": \"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\", \"shape\": [480, 640, 3]}", "lap": "0", "map": "(151.0, 77.0)", "v": "0.0", "w": "0.0"}

@Apoorvgarg-creator
Copy link
Member

@pawanw17 Please confirm if this json is sent when update state.

@pawanw17
Copy link
Collaborator Author

@Apoorvgarg-creator yes

@pawanw17
Copy link
Collaborator Author

@Apoorvgarg-creator I tried to go back to the old widget by updating this line

{% react_component exercise/follow_line_newmanager/SpecificFollowLine %}{% end_react_component %}

with
{% react_component components/visualizers/UpdateView %}{% end_react_component %}

And it seems the issue is intermittent now, the widget works most of the time but hangs abruptly sometimes or doesn't appear.

@Apoorvgarg-creator
Copy link
Member

@pawanw17 I will also check if there is some "why" for the stated behaviour

@Apoorvgarg-creator Apoorvgarg-creator self-assigned this Jul 1, 2024
@Apoorvgarg-creator
Copy link
Member

@pawanw17 I ran the code sent by you. I put a debugger also, but I didn't get any data.

@Apoorvgarg-creator
Copy link
Member

@pawanw17 Check this, No data is coming from backend in image.

Screenshot 2024-07-02 at 9 46 21 PM Screenshot 2024-07-02 at 9 47 44 PM

@pawanw17
Copy link
Collaborator Author

pawanw17 commented Jul 2, 2024

The data is not going because your code is stuck probably because of a runtime error see the console in UI, there is some error in your online editor code

If you scroll the console a bit then you'll see the real error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
javascript Pull requests that update Javascript code superthin
Projects
None yet
Development

No branches or pull requests

6 participants